En El mito de la semántica en la web comentaba como con CSS uno podría recurrir a puros elementos SPANy aplicarles estilos para hacerlos actuar como otros elementos y engañar a diferentes usuarios. Aunque al final reconozco la importancia que tienen los elementos ya reconocidos, quizás terminó siendo algo confuso (ver los comentarios del post), por lo que incluyo ahora la recomendación que aparece en las especificaciones de CSS 2.1 (en inglés) que explican más resumidamente lo que yo divague.
CSS le otorga tanto poder al atributo
class, que los autores podrían conceptualmente diseñar su propiolenguaje del documentobasados en elementos con casi ninguna presentación asociada (tales comoDIVySPANen HTML) y asignando información acerca del estilo a través del atributoclass. Los autores deben evitar esta práctica ya que los elementos estructurales de un lenguaje de documento comúnmente tienen significados aceptados y reconocidos mientras que las clases definidas por el autor no pueden tenerlos.
Extraido de Selectores de clases (SIDAR).