I campi hidden sono impossibili da gestire per una cosa del genere: diventa macchinoso e ti ritrovi con un codice squallido.

Le sessioni si azzerano ad ogni uscita del client quindi quando ricarica la pagina deve scegliere nuovamente il tema.
Inoltre si azzerano anche dopo un po' di tempo (non sempre controllabile facilmente).

I cookies sono stati inventati proprio per questo.
Se uno li ha disabilitati per scelta... sa di non poter usufruire delle personalizzazioni e non può lamentarsi.

Luca

PS parliamo ovviamente di utenti "anonimi": se c'è un login allora il discorso cambia, puoi associare nel DB all'utente il tuo tema preferito.