Hai chiesto "quanto male". Quindi per dare un tocco in più alla risposta di RobertKoritnik (del tutto accurata) ...
Quel codice non è corretto. L'errato non arriva nei toni del grigio. Questo codice viola lo standard ed è quindi errato. Non verrebbe verificato il controllo di convalida e dovrebbe.
Detto questo, nessun browser attualmente sul mercato se ne lamenterebbe o non avrebbe avuto alcun problema. I browser avrebbero il diritto di lamentarsene, ma nessuna delle versioni attuali di nessuno di essi attualmente lo fa. Ciò non significa che le versioni future potrebbero non trattare male questo codice.
Il tuo comportamento nel tentativo di utilizzare quell'ID come selettore, sia in CSS che in JavaScript, non è indovinabile e probabilmente varia da browser a browser. Suppongo che uno studio potrebbe essere fatto per vedere come ogni browser reagisce a questo. Penso che nel migliore dei casi, lo tratterebbe proprio come "class =", e selezionerebbe l'elenco di essi. (Ciò potrebbe confondere le librerie JavaScript, tuttavia - se fossi l'autore di jQuery, avrei potuto ottimizzare il mio codice selettore in modo che se vieni da me con un selettore che inizia con "#", mi aspetto un singolo oggetto e ottengo un oggetto la lista potrebbe darmi una botta completamente.)
Potrebbe anche selezionare il primo, o forse l'ultimo, oppure non selezionarne nessuno, oppure bloccare completamente il browser. Non c'è modo di dirlo senza provarlo.
"Quanto male" dipende quindi interamente da quanto rigorosamente un particolare browser implementa le specifiche HTML e da cosa fa quando si confronta con una violazione di tali specifiche.
EDIT: SOLO mi è capitato di imbattermi oggi. Sto estraendo vari componenti dai moduli di ricerca su vari tipi di entità per produrre una grande utility di reporting all-in-one per questo sito, sto caricando i moduli di ricerca delle pagine remote in div nascosti e inserendoli nel mio generatore di report quando viene selezionato il tipo di entità appropriato come origine per il report. Quindi c'è una versione nascosta del modulo e una versione visualizzata nel generatore di report. Il codice JavaScript fornito, in ogni caso, si riferisce a elementi per ID, di cui ora sono DUE nella pagina: quella nascosta e quella visualizzata.
Quello che jQuery sembra fare è selezionarmi il PRIMO, che in ogni caso è esattamente quello che NON voglio.
Sto lavorando a questo problema scrivendo i selettori per specificare la regione della pagina in cui voglio inserire il mio campo (ovvero: $ ('# containerDiv #specificElement')). Ma c'è una risposta alla tua domanda: jQuery su Chrome si comporta sicuramente in un modo particolare di fronte a questa violazione delle specifiche.