Earlier quoted context omitted.
The middle ground doesn't work. See MS Windows update hell. The way things should work is like this: Subscription for when you want to use the software and open format data files that you're always easily able to export and download. If a company goes out of business or does something stupid then another one will pop up to handle your needs. This aligns incentives correctly while still allows a healthy dose of compet…
An alternative is intentionally packaging releases into tiers (performance, stability, feature, etc) and sell them as such. Something closer to Windows XP service packs than individual updates. I'd expect small, necessary updates to continue to exist as they do. A user can buy the base version, then a few months later when you create a release that allows processing widgets through the program twice as fast, they can…
That could quickly devolve into supporting a large number of distinct versions of the software, which would be difficult and costly. Nobody wants to do that.
Not to mention that, if this versioned software is a platform (for example, WinXP and its service packs you mention), downstream vendors would also need to QA and support their software on all actively supported versions of said platform.