thisThis is partially a historic remnant of the browser war
IE and netscape were competing to take over the market and kept releasing new features that kept becoming more and more "awesome", and were force to accept the pages designed for the other browser.
This means that browser accept and ignore unknown tags silently, after the committees started getting involved ... well you have a committee designing stuff and as a result a lot of different versions (with some ambiguously worded specs) where browser want to support most of them, and creating a separate parser for each version would be enormous bloat. So it is (relatively) easier to use a single parser with different modes.
For another part netscape and IE wanted html to be accessible for the common man (as was the fad those days) which means trying to do what the user wanted to be done instead of what he said to do and tripping over every dangling tag.
makingMaking the problem worse is that there are also several "tutorial" sites teaching the wrong thing and thinking they are right because what they teach works.
Ultimately this means that if you now create a browser with only strict html parsing 99% of the sites out there will just not work.