El concepto del html es bastante sencillo dentro de todo
Es un lenguaje DE MARCAS. Que significa esto? Que sirve para marcar la información SEGÚN EL TIPO de información que sea, o lo que es lo mismo, SEGÚN SU SEMÁNTICA.
Si ciertos datos son un título, pues se usa cierto código para identificar que eso es un título. Si son un párrafo, otro. Si es una abreviación, otro código... y así.
Listo, no tiene más misterio que eso.
¿cuando se dice que el html no es semántico y por lo tanto es algo a evitar? Cuando se usa el código que identifica a un título para en vez de un título identificar un párrafo, por ejemplo.