You say that, but you'll be pissed if you have to re-buy the same app every two years because Apple deprecated some function or pushed some breaking change in a recent OS update that crashes the app.I agree, it's too bad as I would support the developer and pay for a single use license and pay for each new version over a subscription any day.
The reality of development today is that nothing you create is forever. When you push an app to iOS or macOS today you can maybe be able to guarantee functionality for 18-24 months. Maybe. The odds are good that a breaking change will require you to spend time and money to update your apps. By the 4 year mark it's almost guaranteed that some (or all) of your app will no longer work on the most recent OS update which isn't really voluntary anymore for your users—especially since they may update their device which can't be downgraded.
Long gone are the days where you could buy software and run it for a decade unless you want to do that on a device that is airgapped from the internet and never updated.
There are tens of thousands of apps that were developed for earlier versions of iOS that are completely lost to time.