I'm going to go with the unpopular opinion, that all apps should have the subscription support model.
Especially open source apps!
Ideally the code is open, and under GPL or a GPL.
Unless you have a device completely disconnected from the internet, there needs to be constant development, to update libraries, to get security updates, to fix rare but critical bugs. Nobody, and I mean nobody, should be running a binary that never gets updates from 10 years ago, on a device connected to the internet.
I seen a variety of approaches to supporting app development, I think a lot of the pricing is targeted towards the richest people, ignoring the vast majority of the world. For open source apps having the app itself with a nag screen, or a supported version of the app that is just a recurring donation maybe a dollar a month.
All that being said, when the subscription ends, the app should still work at the last version, and the user just assumes the risk of running older software un maintained.
(I'm aware there's ways to mitigate the risk of unmaintained software, running in a very highly protected VM for example...)