If everyone would just code to the spec, and not do the horrendous browser checks (sniffing :( ) that you are referring to, the world would be a much better place. The problem is not that there are not good, stable and nice specs, it's that web authors never follow them. They write for one browser where they check what works and what doesn't.
Had they actually written after the spec text, then everything would've been better and easier to everyone. That's not how the web works, so it's impossible to have a wonderland system build on that.
Also, we don't break backwards compatibility. That was the whole reason Opera went together with Google and Apple back in the days to form the WHATWG. W3C wanted to boil the ocean and break everything with xhtml2.
We revert changes and edit specs all the time when we find that sites depend on it. It has to be that way out in the real world wild web.