I was thinking the same thing, but I don't think that's sustainable, nor is it a good user experience. If you have X choices of IAP features available, are you going to test the 2^(X+1) configurations out there?
Probably the best you could do with IAP is offer current version as IAP, and roll your n-1 features back into the main app as a free update on a periodic basis (i.e., want the latest and greatest, buy it now, or wait X months/years and get it for free).
Nickle and diming your customers for features also leaves a bad taste in the mouth.
As a customer, I appreciate Apple's model since I know all updates are free and any major version changes usually warrant a new app entry (I find it annoying, but understandable, that the previous version is sometimes retired from the App store), which makes the demarcation clear of what I need to pay for vs. what I don't.
I think ianterrell's idea was that, if you're going from, say, version 2 to version 3, you release version 3 for free, but all the new version 3 features are a single in-app purchase. No nickel and diming.
One result of this approach is that everybody gets bugfixes for free, which users are sure to like better than a model where they have to pay for fixes.
One thing you have to decide is what to do if you then release version 4, and someone never paid for 3. Does he have to pay for 3 and 4 separately, or can he just buy 4 and get the 3 features for free? (I'm pretty sure you don't want to let him buy 4 and not have 3; that's where you start getting configuration explosion.) The latter has precedent in the packaged world, with vendors that would give you the same discount when upgrading from any earlier version.
All new features are paid for as content upgrades currently are.
If you overhaul your code you release it first as a free demo (old language; beta), then discontinue it as you release a feature-matched-update to the single paid for version you maintain.
This reduces new features to an individual cost upgrade and ensures your existing users aren't left with an unsupported version.
This is actually a very good result for the consumer. (I'm thinking premium applications such as Audio, Photoshop etc.)
Probably the best you could do with IAP is offer current version as IAP, and roll your n-1 features back into the main app as a free update on a periodic basis (i.e., want the latest and greatest, buy it now, or wait X months/years and get it for free).
Nickle and diming your customers for features also leaves a bad taste in the mouth.
As a customer, I appreciate Apple's model since I know all updates are free and any major version changes usually warrant a new app entry (I find it annoying, but understandable, that the previous version is sometimes retired from the App store), which makes the demarcation clear of what I need to pay for vs. what I don't.