|laziness, impatience, and hubris|
Under your scheme all of the poor surfers of the world would be getting lots of errors from their browsers...
Okay, when was the last time you got an error from an ATM because it lost some of your money, even if it's requesting it from a different bank? ATMs work because the design of the ATMs communication protocol was standardized before the ATMs communicated with different banks and this design was adhered to.
In your example above, if the standards were clear from the beginning and the companies that made the browsers put out standards-compliant browsers, the designers would be getting the errors, too! They'd scratch their heads and their buddy Bob would say "Actually, you need to put quotes around attribute values". Aah! The light would dawn, the problem would be fixed, and we'd probably have a better Web, albeit a potentially smaller one. Of course, that's not reality, so we're stuck.
And do you want to be responsible for explaining to the client that the $30,000 transaction couldn't go through because something changed how much whitespace is sent?
"Look Mr. CEO. You said you didn't want any bugs and it says right here in ar_post() API that no white space is allowed between the 12 digit Account Number and the 9 digit Routing Transit Number. If your programmers don't adhere to the specifications we send, how can we be sure that they are sending what they're supposed to?"
Admittedly, that's an overly simplistic example and not flexible enough for real world work. My point is not that we should be so rigid that we break with the slightest gust of wind. My point is that we shouldn't be so flexible that we fall over :)
Join the Perlmonks Setiathome Group or just click on the the link and check out our stats.