To put it simply, in that old-school thinking, the bare domain should have only SOA and NS (these two being required for the domain to work), MX and SRV (these two being protocol-specific), things like TXT for SPF, and the DNSSEC stuff, but not A or AAAA or CNAME (and AFAIK using CNAME in a bare domain can cause problems, since it's not supposed to be used together with anything else, and a bare domain always has at least SOA and NS).
This is inaccurate. There's never been a reason to not assign an A record to @.
The historic structure of DNS is that names were given to systems within a domain. So you might have pikachu.company.com, squirtle.company.com, etc. It wouldn't make sense to just assign an address to the domain itself because we simply didn't have the technology to drive sophisticated consolidated sites on one system. You might need to get some files off one host, and some off another. We didn't have load balancers, and we often didn't have drive space to hold everything in one place.
MX doesn't have this problem of scale, as MX specifies multiple systems per SMTP spec.
Sometimes people would create www.pikachu.company.com, and sometimes they wouldn't. The www prefix was sometimes a handy default, but certainly wasn't ubiquitous.
The real change here is the rise of single endpoints for a domain. This began by assigning "www" as place to look for web content for the entire domain and almost in unison people began to also add A records to the domain itself. After all, why wouldn't we?
CNAME is different, of course, because CNAME aliases all record types - not just A records.