I think this is mostly a mismatch in expectations. "pay full price, suckers" only rings true if it's not actually a major release - small features, security/compatibility updates should be free. A new version should offer enough benefits to be worth the price.
I don't know if I agree with this sentiment. Take the author's app, "Delicious Library 2". The main functionality of this app is to catalog your things in an easy and streamlined way. I'd reckon that most people are paying the ~$35 for this app to do just that.
If the developers develop a whole new set of features (while still building off the core functionality) that they could call "Delicious Library 3", but are actually fully compatible with Delicious Library 2, why should they have to ask their users to pay full price for an upgrade, when they already have the core functionality which is the draw for the new users to pay full price.
I've seen positives and negatives to this model in video gaming. I love seeing a full-feature expansion to a game I own, and don't mind paying $5 - $20 in addition to the $60 I already paid, but I wouldn't be happy paying $60 again for the "complete" edition just to get the expansions, but that "complete" edition is great for people who haven't already purchased the game.
I’d rather offer existing customers a discount, since I figure some percentage of what they’re getting is the old functionality, and they’ve been there for me in the past.
Put differently: if I’ve written an app that 50% new, don’t I deserve to get paid by existing customers for that work?