This is actually really painful for both devs and users - the main thing being that recovery of the paid upgrade will be finicky and unreliable. The UI for recovering an in-app purchase is the same as the buying UI, which leads many users to mistakenly believe they are being double-charged.
Who can blame them, the UI blows.
Since devs themselves also do not get any user-specific information when an in-app purchase is sold, it becomes pretty much impossible for your support channels to verify someone actually owns what they say they own.
Until the API improves (not holding my breath, it's been like this for, what, 3 years now?) IAP-driven upgrades will hurt both users and developers.
There are API methods that directly handle recovery. However, it wasn't until recently (earlier this year) that the App Store review process finally required developers to implement the restore mechanism.
Is recovering upgrades finicky and unreliable? The only app I can think of which has the functionality is Ascension: Chronicle of the Godslayer [0], and it's pretty clear and seems to work quite well. The UI isn't easily confused with in-app purchases, although you do have to go to "In App Store" from the main menu. Once there, you click Recover and it just works.
This impacts free + IAP models also. Here's the classic use case:
1. User gets a shiny new iPhone.
2. User installs my (free) AwesomeApp on new device.
3. User is missing premium AwesomeApp features, is now confused about why.
4. User goes to IAP part of app and tries to recover the IAP/premium features, except Apple's UI here would lead user to believe they are being charged for the IAP again.
This is often followed by:
5. User contacts support and is very confused. Support cannot verify whether or not user owns the IAP, because the App Store is a black box and we get no information about purchasers.
Isn't that what the restoreCompletedTransactions api is for? It's the fault of the app developer for not using it, and forcing the user to go through the purchase flow again.
Not sure I agree, in-app purchases have turned so scammy recently (buy 1000 fun points for $100!) that I've taken to not even looking at games if they include IAP anymore.
No, I think the idea is that there are some full blown apps that seem to serve only to push sales of other apps.
Not a big deal for demo + full version apps, but when you pay full price for an app (or download a free, non-demo app) and keep getting pushed to buy other apps it gets pretty annoying.
Some apps have done it tastefully, like Temple Run. Others like Scramble (and my assumption is all Zynga apps) just make it a drag.