That's a big part of what HTML 5 is about, to codify existing practice when it was realized that trying to push strict standards was fighting against windmills. Nobody would ever push their web pages to the browser as application/xhtml because the user getting a validation error instead of a working page due to any slight infraction would have been catastrophically poor UX. Thus, even "XHTML" pages were sent as text/html and parsed by browsers as tag soup - pretty much defeating the purpose of XHTML.
Browsers accepting tag soup is just a manifestation of the Robustness Principle [1]:
"Be conservative in what you send, be liberal in what you accept"
Browsers accepting tag soup is just a manifestation of the Robustness Principle [1]:
"Be conservative in what you send, be liberal in what you accept"
[1] https://en.wikipedia.org/wiki/Robustness_principle