Caching vs. memory footprint: it's a balance.
For any task on a computer, there are several implementations with different tradeoffs.
I mentioned Windows Networking because the only reason Firefox has ever started or run slowly for me is when its configuration files and cache were stored on a network drive. Also, Firefox uses a lockfile which allows each user profile to only be active on one machine at a time; it doesn't really matter to me how many instances are open on that machine, but it is damned annoying not being able to have Firefox windows open on two machines at once when operating on, for instance, a company network.
HTML is lax. Compared to XML, it's extremely accommodating of junk syntax. The problem is that there's no real consensus on how each deviation from the standard should be rendered (CSS is another can of worms and not one I'm inclined to open up now). With XHTML, there's a clear defining line between 'right' and 'wrong', and a document that is 'wrong' simply isn't rendered.
More accurately, the HTML spec isn't lax; implementations of it are, in order to make things easier for people who write really crap HTML and expect it to work.
On a vaguely related note... my last post contains misinterpretations which were caused at least in part by excessive alcohol consumption. There was a charity pub crawl last night...