Aus semantischer Sicht gäbe es keinen Unterschied, es ist nunmal aber anders gemacht worden.
Wer sagt das?
Wer sagt dass es nicht so ist?
Wenn jemand definiert hätte, dass die semantische Aussage eines Elements über seine Klasse(n) definiert wäre, gäbe es keinen Unterschied.
<foo type="paragraph" /> und <p /> oder <foo type="heading level1" /> und <h1 /> ist bei entsprechender definition absolut gleichbedeutend.