Do you actually do that, or do you just like the idea of being able to do it ? Even on a desktop PC, where upgrading is much easier and more common, I've never seen the point.
Either you upgrade fairly often, in which case you pay a relatively large amount for marginal improvements, or you upgrade every few years, in which case you need to replace so many parts you might as well replace the entire machine.
Say you upgrade the CPU to a newer model after a year, that's a fairly costly upgrade and how much additional performance will you get in return ?
If you wait a few years to upgrade your CPU, you'll find that the new CPU also requires a new motherboard, and the new motherboard requires a new type of RAM. They you find out that your old GPU is now a bottleneck, and when replacing that you realise your new GPU requires an new power supply as well. By the time you're finished all you've done is recycled the case.
e.g., if just the RAM is an issue, I don’t have to buy an entirely new device and pay extra for everything else.
It’s awesome that I can build custom PAM modules and disk encryption unlocking solutions to enforce that both a password and a YubiKey need to be present to unlock the disk. I love being able to configure my display manager to discard the decryption keys for my user pool when I log out to get the same kind of security that I’d have on a phone.
Being able to modify soft- and hardware allows you to add features that other OS vendors don’t yet support, or retrofit new features and functionality onto old hardware to make it usable far beyond its planned EOL.