Dal punto di vista teorico, la cosa e` corretta.
Il problema e` l'applicazione: che io sappia non tutti i browser permettono di dare uno stile alle option (prendono solo lo stile della select).
Pero` .... pero` mi sorge il dubbio: che senso ha?
Che senso ha nascondere (ma non eliminare) un'option da una select.
In linea di massima se si deve nascondere qualcosa e` per un tempo/situazione limitati: ad esempio nei menu viene nascosto il sottomenu (perche` viene mostrato al :hover); nei CSS di stampa vengono nascosti alcuni blocchi (che non hanno senso se stampati); ...
Ma nel tuo caso?
Forse c'e` un JS che ad un certo punto (ad un particolare evento) visualizza le opzioni?
Con quel tanto il JS e` in grado anche di ricreare tutte o parte delle opzioni.
Oppure mi sfugge qualcosa ....