> there's always the need to continually improve the product so that you don't "fall behind",
That's not real. There are downright ancient products that work better than current stuff because they don't suffer from this curse. That's a business concern, not a problem that engineers need to solve, and when engineers are solving that problem they're wasting their time (and everyone else's).
> fix the rampant bugs that occur when you add in new features,
This is part of the problem: at some point if you've done your job, you don't have to add more features and you can actually finish the product.
Look at the chat client market: chat of this kind has been a solved problem for at least a decade, but people have to work on something so they decide to reinvent chat. HipChat did it, now they're losing market to Slack because they keep making pointless changes that don't improve HipChat which makes it harder to use. And Slack is basically just a shiny reimplementation of an IRC client: there are still IRC clients that have been doing more than what Slack does for years. In another decade we won't be using Slack, we'll be using some other shitty chat client, and the 90s IRC clients will still work just fine.
Again, this is business for the sake of money, not for the sake of actually improving anything, and it's a waste of everyone's time.
> realize that the customers actually wanted something different
There's certainly lots of iteration needed to solve a problem, but that doesn't mean it's unsolvable. If you've never actually experienced a problem solved, it's not because it's not something that's possible, it's because you've been working on making money rather than solving the problem, and only making progress on the problem tangentially.
> need to refactor the code properly to match the latest design fad
That's just stupid. Not only does it not solve problems, it usually isn't even good for business.
> have to rewrite the program in a brand new language...
This is rarely necessary and if it is, the job wasn't done right the first time.
> So, when we say "there's no work to be done", it's a blatant lie.
I get that you disagree, but you should really learn the meaning of the world "lie". And also the meaning of the word "misstatement".