Я думаю, что лучшее эмпирическое правило - быть осторожным при размещении идентификаторов на элементах. Это верно практически для всех языков, проблема с некомпилированными языками заключается в том, что в зависимости от среды редактирования это не будет обнаружено до времени выполнения. Браузер не будет жаловаться на элементы HTML с дублирующимися идентификаторами, пока вы не попытаетесь ссылаться на него в JavaScript.
Идентификаторы очень полезны в уникальных идентифицирующих разделах вашего HTML, но используются иначе, чем классы. Обычно классы используются для стилизации элементов, которые имеют общие свойства, а идентификаторы используются для уникальной идентификации конкретного элемента для обработки.