Eventually maintaining old hardware will no longer be a viable option. Even if you are adept at soldering and have a good soldering station there's little you can do beyond replacing leaky or bad electrolytic caps, maybe locate a bad diode; but a burnt resistor? what overloaded it? Troubleshooting is out of the question. A dead 64 pin SMD? Could you get a replacement chip, much less be able to physically replace it? How long will AGP vid cards be available? Or IDE drives?
Another mitigating factor is cost. Twenty years ago it was economically feasible to upgrade old systems - more RAM, larger HDs, better vid card, etc.; but manufacturers don't like that so costs for older replacement parts skyrocketed. A few years ago I wanted to upgrade my old XP system, but I could replace the 1gig RAM sticks in my Vista system with 2gig more cheaply than I could replace the 512s in the Vista with 1gigs.
To continue running old software, the future is in emulation such as DOSBox. There are emulators for '80's era console games now, not to mention the many clones of these games (which look, sound, and play like the originals) created for new windows. From Win7 x64 on you can run old 32 bit OS in a VM, that is the future for old games ....and one day someone will be discussing running Win7 x64 in a VM on their Win25 x256 system with 512gig RAM.
But the ultimate bottleneck stems from computers, which operate on "logic", being programmed by humans, the majority of whom have no concept of logic. Consider this absolutely logical concept: a cup of water can be carried in a quart jar, a quart of water can be carried in a gallon jug, a gallon of water can be carried in a five gallon bucket. Pure logic. Now, a 16bit program can run on a 32 bit system, a 32 bit program can run on a 64 bit system ...then programmer logic completely fails because a 16bit program "cannot run on a 64bit system".
I have an older game which balks at running on a 32bit desktop, demanding it be set to 256 color. So you are telling me you can draw this picture with the 8 color box of crayons, but it cannot be drawn with the 64 color box of crayons ....even though that 64 color box contains all the colors of the 8 color box?! This is programmer logic, not real logic.