1) Подробнее
тут
Там написано, что
A DOCTYPE must consist of the following components, in this order: string that is an ASCII case-insensitive match for the string !DOCTYPE"...
, то бишь
без учета регистра
2) Во-первых,
en, а не
eng. Во-вторых, имхо глупо объявлять основной язык страницы английским, когда на деле весь контент, условно, на русском. Почитайте для чего его(язык) указывают и поймете, что так, как в вашем вопросе, делают только "опытные" разработчики.
3) Браузер загружает HTML постепенно и, если он видит тег script, то он должен выполнить его и только после этого загружать контент, находящийся после. Чтобы
частично избежать задержки показа контента, скрипты помещают в конец страницы. Заметьте, это только частично решает проблему, если скриптов не много и они не тяжеловесные. Далее советую почитать про атрибуты
async и
defer и разницу между ними.
4) По стандарту HTML5 одиночные теги закрывать не нужно, это спецификация XHTML. Но валидатор на это ругаться не будет, так что тут уж как душе хочется.