Why? See http://w3fools.com
Why? See http://w3fools.com
It's written by the kind of people who used to recommend "validating" your HTML because then it would be valid. Yay!
The pedantry against w3schools is unhelpful, misguided and at times down-right wrong.
For example:
w3schools: "URLs cannot contain spaces. URL encoding normally replaces a space with a + sign."
w3fools: "That's not true. An URL can use spaces. Nothing defines that a space is replaced with a + sign"
Actually: "The encoding used by default is based on a very early version of the general URI percent-encoding rules, with a number of modifications such as newline normalization and replacing spaces with "+" instead of "%20". The MIME type of data encoded this way is application/x-www-form-urlencoded, and it is currently defined (still in a very outdated manner) in the HTML and XForms specifications. In addition, the CGI specification contains rules for how web servers decode data of this type and make it available to applications."
http://en.wikipedia.org/wiki/Percent-encoding#The_applicatio...
Many (most) of these things are judgement calls and/or historical anomalies. W3Fools is wrong to say w3schools is a problem - it is merely insufficient on its own. They would be better off generating a better version rather than complaining.
I also don't see what you mean that it's a "stupid site that exists sorely [sic] as a protest against the existence of another site". If a hypothetical site did exist that was as bad as W3Fools claims W3Schools is (setting aside that you don't seem to think W3Schools is that bad), don't you think it's nice, or at least not stupid, to have a site you can point people to that explains what's wrong with the hypothetical bad site and what alternatives there are?
Validating your HTML is like linting your JS, I agree that it'd be dumb to do it for it's own sake, and in fact I know HTML and JS well enough and have enough quirky personal preferences that I don't do it, but I believe it is in fact good practice, especially for beginners, because invalid HTML, like JS that doesn't pass lint, can be a sign of bad practices or mistakes.