Apple needs to stop this nonsense of debuting a product and not shipping it until X months later.
Problem is, it's hard to ship a platform with nothing to run on it in particular.
Yeah, it runs iPhone apps, but running only those would be kinda fugly. They've whipped up some Apple apps for it, but most of those were met with a yawn. They could clue in some other big names via NDAs, but that has ugly logistics, risks leaks, and debuts with still too few native apps.
Alternative is what they did: introduce it 2-3 months early, give everyone the specs & SDK, and have the market chomping at the bit with LOTS of ported & native apps ready to go once it hits.
Bonus: with the premature intro, Apple defuses lots of the "it sucks - and will no matter what 'it' is" negative hype before the actual delivery, and has a chance to evaluate the market & adjust accordingly to delight customers when they actually get it. Imagine what happens if, now that we know what it is, Jobs drops the price by $100 and includes the front-facing camera (or some other combination of improvements) at actual introduction: we're all happy it's better than promised, and go crazy buying 'em.
It's rare for a new platform to show up completely unannounced. Kinda stalls the interest when people can't actually _do_ anything with a new product beyond what they already do with other products. Imagine (all M$ bashing aside) Microsoft introducing Windows 8 out of the blue, no leaks, no pre-announcements, and no native apps to benefit from the upgrade out of the gate.