I do not know how every other software vendor evades this law and supplies service packs for free even after 3 years of product release.
It depends on a few things:
1) Does the service pack add new features and functionality to the product, or is it simply fixing features that were always supposed to have been in the product but which turned out to be insecure or buggy? If it's the latter, they are permitted to give it away for free (and in some cases, they might be REQUIRED to do so). If it's the former, they still
might be allowed to give it away for free, or they
might feel compelled to charge for it, depending on:
2) Did they hold back reporting any of the revenue from the initial sale of the device to cover the anticipated value of extra features that may be added to it through future software upgrades? If they did not, then the delivery of new features is considered to be a whole new product that has to be accounted for separately (ie. charged for). If they did hold some revenue back, then they are permitted to give such new features away "for free". (Actually, they aren't giving it away for free; instead, you effectively pre-paid for the new features back when you bought the device.)
How much revenue would they have to hold back? That's what is affected by the recent changes in GAAP rules. The changes didn't entirely remove the requirement that some revenue should be held back. Rather, it simply sets a lower target for what percentage of revenue should be held back. Previously, the generally accepted practice was to divide the full purchase price into equal quarterly payments spread out over the whole life of the product's support cycle. Now, the manufacturer can estimate the approximate added value that would be come from anticipated future updates, and hold back only that smaller amount, reporting all the rest of the purchase price at once. (This has the benefit of producing more impressive performance in the short-term, which impresses investors.)
Till recently, Apple was not accounting all the revenues they get in the quarter but spreading it over many quarters since, according to GAAP accounting principles, the cost of the product includes future software updates, bug fixes and other maintenance and support services.
What you're saying is an accurate description of what Apple has been doing with revenue from the iPhone and the Apple TV.
But it is not what they've been doing with the iPod touch. For the iPod touch, they've always reported 100% of their revenue right up front; they've never held any of it back to account for future updates -- not one penny.
No matter which set of rules you're looking at (the old ones that split the full purchase price into equal payments spread over time, or the new ones that only hold back enough to pay for anticipated new features), either way, for the iPod touch there is no GAAP money left over to account for any future upgrades.
This is, of course, a decision that Apple made back when they first started selling iPod touches. They could have decided to hold some money back, just like they already had with the iPhone. But they decided not to. And now the owners of those 100%-revenue-already-reported iPod touches are stuck with the consequences.