Forse, ma non credo sia possibile, lo xhtml e i css sono elementi statici non dinamici, insomma non si modificano da se, inoltre non sono nemmeno linguaggi di programmazione a rigore perché non compiono nessuna operazione se non quella presentazionale.
Il foglio di stile viene interpretato al caricamento della pagina, il parser che c'è in ogni browser lo carica piano piano un pezzo alla volta e lo interpreta così com'è.
Puoi modificare con il javascript byfly anche tutta la pagina ma diverebbe un lavoro pesante, sia come sviluppo del codice che per il microprocessore che deve interpretare quel codice, in altre parole, rischi di fare un lavoro monumentale e inutile.
Puoi sempre e solo con il javascript prendere l'effettiva dimensione dello scermo e sulla base di questo caricare un foglio di stile, ma non penso che sia una via percorribile perché comunque sarebbe una cosa che faresti dopo aver caricata la pagina, quindi non intepretebile dal parser prima che la stessa venga caricata dal server e letta.
Tutto sommato credo che l'unica cosa rimane il redirect o comunque l'aggiornamento della pagina.
L'altra pratica è lo sniffing lato server o via javascript per redirezionare verso un css o verso una versione di sito in base al browser, mi riferisco ad esempio ai PDA/telefonini rispetto ai PC.