Selbst wenn Du nicht valides Markup lieferst, kannst Du dir sicher sein, was für ein DOM welcher Client daraus genau generiert.
Das gilt womöglich für aktuelle (die, bzw. deren Engine kann man ja testen oder gar deren Spezifikationen nachlesen) — aber nicht für zukünftige Clients:
Man will ja sein nicht-valides Markup nicht an künftige Fehlerkorrekturen anpassen. Also: Ganz einfach valides Zeug erzeugen, das spart in der Zukunft viel Arbeit, die auch noch genau dann sofort erledigt werden muss, wenn es gar nicht passt.