Long story short: the www is not necessarily stupid, especially if you use it to designate a web server from different servers.
There is also confusion regarding how they are resolved.
If an A record is requested, but a CNAME is encountered, the resolver will then look up A record for the resource indicated by the CNAME. If the CNAME is specifically requested, it will return itself as expected.
Couple this with different implementations of mail servers (and other stuff) not strictly following RFCs...... that led to a general consensus among many greying sysadmins now to try to avoid using CNAME records wherever possible, as they were more trouble than they were worth.
Example: If you want google.com you type "go google" into the address bar and "Go CB" when you want a chat protocol.