I have been building computers since the Pentium 3 days with Win98. I think we have seen the bottlenecks that induce a desire to upgrade have shifted with each generation of hardware.
Back in those days it was a struggle to get a multimedia PC to run smoothly, as there were potential problems everywhere. AGP and ISA slots anyone? IRQ assignments? LOL!
Then I built several single core 3.0 Ghz Pentium 4 32-bit systems that ran for 10 years, or until I retired a couple of them. Started with a good case and power supply, and used Intel branded desktop boards. Very dependable! One is still running at my sisters house as a print server that runs Win 7 24/7. The death of the AGP port hasn't helped much there. Those AGP GPU's are getting hard to find. But other than one power supply and several GPU's no issues with these builds. Except for the rest of the world moving on to dual core and higher CPU's. Plus the need for more that 4GB RAM.
Which is why I finally threw in the towel on my main desktop and upgraded to a 64-bit Intel Core based setup. I had noticed for a couple of years recently that greedy software developers were maxing out the CPU thread on a single core, for even simple tasks like web surfing, or running real-time AV protection. And the number of processes running was increasing all the time. I have an old XP install that runs empty with around 25 processes. Win 10 runs about 70+!!!
But I think that we have finally gotten to a good place with hardware architecture that has eliminated many of the previous bottlenecks. The move to multicore CPU's, plus eliminating the Front Side Bus [
https://en.wikipedia.org/wiki/Front-side_bus ], and AGP slots, legacy PCI slots, USB1.1, and so forth were big improvements!
The holdups are no longer typically in the CPU, chipset, memory controller, motherboard resources [PCIe slots, USB 2/3 ports, SATA ports, etc.]. No matter what I do now, I do not seem to ever redline any of these components as far as designed performance. So as far as I can see everything in my current build exceeds my needs as far as performance. Even an integrated HD GPU works well now, even for dual monitors at 1920.
Maybe the only exception here is one SSD drive I have that could be faster on a 6Gb/s SATA port that my current 3Gb/s port. But it's fast enough!!!
I suppose the only upgrade I am thinking about now is additional HDD storage space. You can never have enough of that!!!
So that was a good question about how long this will last until we need the next generation of hardware. I think we have seen some great leaps in hardware these past few years, so unless there is a game changer in software, maybe it will be a while before software will catch up to Moore's Law again.