Você perguntou "quão ruim". Então, para esclarecer um pouco a resposta (inteiramente precisa) de RobertKoritnik ...
Esse código está incorreto. Incorreto não vem em tons de cinza. Este código viola o padrão e, portanto, está incorreto. Falharia na verificação da validação, e deveria.
Dito isto, nenhum navegador atualmente no mercado reclamaria ou teria qualquer problema com ele. Os navegadores teriam o direito de reclamar, mas nenhuma das versões atuais de nenhum deles o faz atualmente. O que não significa que versões futuras podem não tratar mal esse código.
Seu comportamento ao tentar usar esse ID como seletor, tanto em css quanto em javascript, é inquestionável e provavelmente varia de navegador para navegador. Suponho que um estudo possa ser feito para ver como cada navegador reage a isso. Eu acho que, na melhor das hipóteses, trataria isso como "class =" e selecione a lista deles. (Porém, isso pode confundir as bibliotecas JavaScript - se eu fosse o autor do jQuery, poderia ter otimizado meu código do seletor para que, se você me encontrar com um seletor começando com "#", espere um único objeto e obtenha um A lista pode estar completamente diferente.)
Ele também pode selecionar o primeiro, ou possivelmente o último, ou não selecionar nenhum deles, ou travar completamente o navegador. Não há como saber sem tentar.
"Quão ruim" depende inteiramente de quão rigorosamente um navegador específico implementa a especificação HTML e o que ele faz quando confrontado com uma violação dessa especificação.
EDIT: Acabei de me deparar com isso hoje. Estou usando vários componentes de formulários de pesquisa em vários tipos de entidades para produzir um grande utilitário de relatórios completo para este site. Estou carregando os formulários de pesquisa das páginas remotas em divs ocultos e colocando-os no meu gerador de relatórios quando o tipo de entidade apropriado é selecionado como a origem do relatório. Portanto, há uma versão oculta do formulário e uma versão exibida no gerador de relatórios. O JavaScript que acompanha o produto, em todos os casos, refere-se a elementos por ID, dos quais agora existem DOIS na página - o oculto e o exibido.
O que o jQuery parece estar fazendo é me escolher o PRIMEIRO, que em todos os casos é exatamente o que NÃO QUERO.
Estou trabalhando nisso, escrevendo seletores para especificar a região da página em que quero obter meu campo (por exemplo: $ ('# containerDiv #specificElement')). Mas há uma resposta para sua pergunta: o jQuery no Chrome definitivamente se comporta de uma maneira particular quando confrontado com essa violação de especificação.