Потому что семантика отличается от текста к тексту. Нельзя сделать универсальную верстку для сайта где шаблон прописан заранее.
Полностью согласен. Основная задача семантики кода имхо сделать его интуитивным и легко читаемым для сторонних разработчиков, по-этому хеадер должен называться хеадером, копирайт копирайтом, а футер футером, а не "podval". Тоже относиться и к именованию функций и переменных. Дальше надо использовать тэги по назначению, списки, блоки, строчные элементы, вот для чего они придуманы так и использовать. Писать список как strong>span+span+span можно, ксс всё вытянет, можно, но не нужно