If someone pays $40 for, say, 1Password 5, they have no incentive to upgrade. It works well enough, and there's no reason to pay again. So, 1Password is stuck supporting a legacy product (and servers / APIs for it), the user is frustrated by an old version of the software, and the company gets no money so they're at risk of folding (which would hurt both the customer and 1Password).
I agree that subscriptions can get annoying. However, if it ultimately is about the same price, it ends up working out much better for both sides. And hey, they can always stop their subscription and go somewhere else if things get bad. They don't lose their buying power completely.