Warning — I am about to go on a rant.
Every time you write non-standard or invalid code and it works, just remember that some poor browser developer has had to spend developer time to interpret your rubbish code, to work out that you probably meant to close that tag, or that you probably meant " when you used '. The same goes for when a crawler finds your content and spiders your website — if you haven't written your code correctly someone has had to write something to figure out your mess.
Before I get much further, full disclaimer — my code on this site doesn't validate, I am indeed being part of the problem.
A good example of what I am talking about is how IE doesn't support ' to many it feels like a bug on Microsoft's part, but it isn't because ' isn't a supported HTML entity and they have no need to support it, but because so many people write their code with this in it in many people's eyes it is seen as a bug.
Now you may argue that the code had already been written, and the browser's job is to interpret websites and if a lot of websites do the same thing then the browser should be able to display that, and I guess that bares some weight, but here is the thing — imagine how good browsers could be if they didn't need to worry about incorrect code.
Imagine how much further specs could be if browser manufacturers were able to concentrate on new features and less on supporting rubbish code.
Interestingly, I can't find much written online about the amount of time or lines of code that are spent trying to support invalid code, I would love to hear from anyone who has access to that information.
Obviously if browsers were to stop supporting invalid code people would complain and ultimately stop using the browser, but what if all the major browsers got together and released something at the same time — sure it would break some of the web for a while, but the developers would soon get plenty of emails from people and plenty of grief until they fixed their mistake.