Revenue Recognition
You know what sucks? Revenue Recognition rules, and their application on software products.
Here's how it works. You spend $1000 making an app, and you sell it for $10. You sell it to 200 people, yielding revenue of $2000.
What most companies do is declare that revenue, so it shows up on their balance sheet as that they spent $1000 and made $2000. So far so good.
If this were power tools or hockey pucks, that'd be the end of the story. But with software, there's probably still some people at that company working on that product. Working on bug fixes, and maybe even updates.
You can't release a patch for a power tool, but you can for software. So a few months later, the company has improved the software a bit, and wants to give this away as a free update to Version 1.0.
Now they're in a pickle, accounting-wise. They are spending money, but not getting anything for it. They declared the revenue the previous quarter, and for some reason, accounting rules prohibit them legally from giving away an update to something that has already been bought and paid for, without getting anything for it.
If your product involves a subscription or continuing revenue stream, like the iPhone, or Xbox Live, then you can keep releasing updates that add functionality. The Genius feature for the iPod probably uses this rationalization, since it's really a way to sell more iTunes Store product. But could Apple take a feature from a new iPod and port it back to an older one, and give that away for free? Probably not, legally.
Many companies do it anyway. Sony is constantly releasing new features for the PS3, and I don't understand how they can do so, since they're not getting any additional revenue for that product through any sort of subscription or update service. It could be they know some loophole that lets them do it. It could also be that they're just ignoring this restriction.
Apple, meanwhile, charged $1.99 for the 802.11n updater for the Macs that were sold with this capability but without the driver. It's not that they needed the two bucks; they just couldn't legally give it to you for nothing.
I probably simplified this more than I should have; I'm not an accountant, I'm a software developer, one of the guys who has to make sure that when we're working on a patch, we don't slip any new functionality into it. If you want to read more about the rules, check here.
The goal of these restrictions is to keep companies booking revenue in a responsible manner. You can't, for example, get a product 90% done, sell it, book the revenue, but then continue to work on the product and give the rest of it to the customers when it's done, because you're still paying costs for revenue that you got in the past. This is probably good in some accounting way.
But I don't like it.
The nature of software is that sometimes it's easy to add new functionality to shipping software, and doing so is an act of goodwill that customers appreciate.
Maybe that's a way around it. Look at the update as a marketing cost, not a product development cost.