Bear in mind Apple have essentially had to start from scratch, whilst basically making things work in what is basically a new paradigm. Its unreasonable to expect everything at once. Software development just doesnt work like that.
You hit the nail on the head. I've wanted to say this exact thing in about half the posts on this forum. I think the main object was to make sure the phone, and what features it DOES have, worked flawlessly before adding tons of other features (and certainly allowing third-party development).
People were complaining within a week that there hadn't been a big update with new features. Who does that?? Make sure what is there works first, THEN add new features. If they had crammed every single feature in, you'd probably have a lot more bugs. I think for the product it is, we have heard very little about major bugs and crashes. That is pretty remarkable (no, not being a fanboy).
This happened with a company in my line of work. They created a brand new "state of the art" control console from scratch, then tried to get it out early to appease all the people talking about it. Many years later, the platform is still so unstable that almost no one will use it, minus a few die-hards. If they had stuck with their plan, and not tried to appease the masses by cramming in features, they would have had a successful product.
The features people want (MMS, to-dos, third-party apps) will certainly be available in time (yes, hacked, they already are), but it takes a little time to develop them into a working stable release. June 29 was the release date, and the phone HAD to be stable by then. Just don't get your panties in a wad and you'll have it all soon!