The purpose of standards is to make sure that when I make a web page over here, no matter where you are, it'll look the same. That's why there are so many rules; honestly, the more rules the better, so long as the rules don't take away from the power of the language. The rules probably make it easier to standardize web browsers. Defining XHTML strictly doesn't leave room for IE to do one thing and Mozilla to do another, in terms of rendering pages.

Some rules are less important than others though. XHTML is HTML that is also XML, so that's WHERE the rules come from. XML happens to say that tags should be all lowercase, and the values should be quoted, for example. As for WHY the rules exist, that's debateable I guess. The quote rule is a good and necessary rule; what if your value has a space in it? Quotes are necessary in that case. The lowercase thing honestly could've gone either way in my opinion. They could've made it all uppercase, or a combination of either. But they did have to pick SOMETHING as the standard.

Programming languages in general tend to have all lowercase keywords, maybe that's why they picked it. Beats me. All lowercase tags also sets them apart from the text and makes it easier to read. And if you allowed a mix, you are required to define more rules: should an HTML tag be the same as an html tag? What about Html, or HtMl? If I open an HTML tag, can I close it with an html tag, or do I need to close it with HTML too? XML is geared towards being exact. The whole purpose of XML is data-exchange, and with data that's more complex than HTML (and a lot of data IS far more complex), the little details can matter.