Что будет если объявить двум элементам один id?
<img data-id="uuid" />
<p data-id="uuid" >text</p>
querySelectorAll('[data-id="uuid" ]');

можно ли объявить двум элементам один id 
Можно, но в приличном обществе могут ударить по лицу за такое.
конечно же можно
и не слушай маньяков которые внушили себе что нельзя

это не вызывает ошибку

технически это просто обычный атрибут объекта внутри которого текст
не важно как он называется - id или class

можно конечно же в команде договориться об уникальности id
а можно не заморачиваться

откуда ноги растут у этой догмы?
есть такая нестандартная но везде поддерживаемая фишка - браузер автоматически создает переменную одноименную с ид
и ты можешь сразу использовать эту переменную не обьявляя ее
если хочешь пользоваться этим то да, ид должен быть уникальным
но когда в документе несколько одинаковых ид то просто используй квериселектор(#)