Даже не понял к чему тут семантика, в русле вопроса, но мои ученики недавно задали такой-же вопрос.
Да действительно стоит стараться использовать сначала HTML, потом CSS, а потом JS, но если ваш код в результате стал нечитабельным, слишком сложным, или неудобным, стоит задуматься о том чтобы сделать на том же JS, несмотря на возможности CSS и HTML.
А семантика это всего навсего применение тегов для того, для чего они предназначены по смыслу, это понятие было и раньше, например для перечисляемых элементов должен <li>
использоваться, не говорю что только так, но если вы используете <div>
там где например слайдер, это не будет ошибкой, просто догадываться что это перечисляемые элементы, придется по косвенным признакам, а с <li>
все былоб понятно.
И все так налетели на новые семантические теги в HTML 5, но мало кто вспомнил о том что и раньше они были, мало кто стал применять их правильно.