That is all perfectly fine, but it turns out most users, ( Not developers or Geeks ) will only buy a new product when their product stop working or became OUT DATED. Since most App will continue to work for as long as it is, users have no incentive to buy a newer version.
That is why developers wanted a Subscription model. It is hard to sell to its existing users pool, a rental model allow them to have a continuous revenue.
With upgrade model, it is basically offering a discount for its existing users, instead of telling them to buy a New version.
And it turns out, the more subscription Apps there is, the more i like the upgrade pricing model better.