Upgrades are confusing for novice users. Version numbers aren't. While upgrade pricing has been nice in the past, I fully understand wanting to get more revenue from existing users, it just means that the price per version should drop. If customers are truly "loyal" they should have no problems paying full price for an app.
Being loyal is a two way street to me. If you are going to support a product over an extended period of time then I believe there should be some sort of incentive to continue buying the new version - especially when the new version only has X new features added to it. Those new features are really the only thing existing users are paying for, while new users are paying for every feature.
It doesn't have to be approached in the typical upgrade fashion either, the companies can treat the program as a completely new one but I would like to see some form of promo codes that only existing users can take advantage of in order to show appreciation for their support of your product.
In this new model of app upgrades, where they offer new versions of the app as a separate download, you pretty much have to buy all of the features again. This is not unlike buying hardware -- and I think this new model is bringing software more in line with hardware.
Suppose I bought a lawnmower from Honda in 2000. After 13 years, I move to a home with a bigger yard, and I decide that I'd like a bigger mower. Should I reasonably expect to get a discount from Honda on my next mower just because I bought one of their products before?