Você perguntou "quão ruim". Então, para dar uma resposta @ RobertKoritnik (totalmente precisa) um pouco ...
Esse código está incorreto. Incorreto não vem em tons de cinza. Este código viola o padrão e, portanto, está incorreto. Isso falharia na verificação de validação e deveria.
Dito isto, nenhum navegador atualmente no mercado iria reclamar sobre isso, ou ter qualquer problema com isso. Os navegadores estariam dentro de seus direitos para reclamar sobre isso, mas nenhuma das versões atuais de qualquer deles faz atualmente. O que não significa que as futuras versões possam não tratar bem este código.
Seu comportamento ao tentar usar esse ID como seletor, seja em css ou javascript, é imprevisível e provavelmente varia de navegador para navegador. Suponho que um estudo poderia ser feito para ver como cada navegador reage a isso. Eu acho que no melhor dos casos, trataria isso como "class=" e selecionaria a lista deles. (Isso pode confundir bibliotecas JavaScript, no entanto - se eu fosse o autor do jQuery, eu poderia ter otimizado meu código seletor para que, se você vir a mim com um seletor começando com "#", eu espere um único objeto e obter um lista pode bork-me completamente.)
Ele também pode selecionar o primeiro, ou possivelmente o último, ou não selecionar nenhum deles ou bloquear totalmente o navegador. Não há como saber sem tentar.
"Quão ruim", então, depende inteiramente de quão estritamente um determinado navegador implementa a especificação HTML, e o que ela faz quando confrontada com uma violação dessa especificação.
EDIT: Acabei de me deparar com isso hoje. Eu estou puxando em vários componentes de formulários de pesquisa em vários tipos de entidades para produzir um grande e completo utilitário de relatórios para este site, estou carregando formulários de busca de páginas remotas em divs escondidos e colocando-os no meu Gerador de relatório 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 veio com, em todos os casos, refere-se aos elementos por ID, dos quais existem agora TWO na página - o oculto e o exibido.
O que o jQuery parece estar fazendo é me selecionar o PRIMEIRO, que em todos os casos é exatamente o que eu NÃO QUERO.
Estou trabalhando em torno disso escrevendo seletores para especificar a região da página na qual eu quero colocar meu campo (por exemplo: $ ('# containerDiv #specificElement')). Mas há uma resposta para sua pergunta: o jQuery no Chrome definitivamente se comporta de maneira particular quando confrontado com essa violação de especificações.