I like to tinker with hardware a little, which is why every 3 years or so I put my own home server together even though I could probably buy a cheaper ready-made solution.
In the days of my old Apple Powerbook I've pretty much replaced everything from memory, harddisk to optical drive, even though the latter definitely wasn't made to be upgraded by end-uses.
But in the last 10 years I've never had to upgrade any hardware, not even the stuff I've put together myself. The days where upgrading was a natural part of the lifecycle of a computer are in the past.
Storage and memory has become cheaper so computers are well equipped from the start, and the need for rapid upgrades in order to be able to use the latest software is no longer an issue except in very small niches.