(The iPhone SDK is still under NDA; even though it’s being widely ignored, I’m only going to respond to articles others have published.)
There are a number of commentators, notably Rogue Amoeba, complaining about some of the restrictions Apple has placed on third-party applications.
Of Rogue Amoeba’s list, I agree with one or two of them; it would be nice to be able to run background agents (not full applications), but I think this is the kind of functionality that perhaps should only be made available to people who pay a bit more up-front than the current $99 charge, to discourage any misuse; and access to the host computer and the docking port would be pretty useful too, though perhaps there are security concerns about host access too… I can’t claim to have thought deeply on the matter.
A lot of the others are just crazy. We really don’t want code running on the iPhone to have root access, or to provide access to the entire filesystem. Both of those restrictions are good security features and should discourage people from writing viruses and other malware for the device.
As for the calls from various parties to allow VoIP over the cellular network, it doesn’t actually matter whether Apple does or doesn’t, because no cellular carrier is going to allow them at the network level. I also have my doubts that the call quality would be acceptable, especially as GPRS and EDGE tend to have a substantial latency for IP datagram delivery and VoIP has no built-in support for handling cell hand-off (unlike GSM voice, which works seamlessly in such cases). Moreover, I don’t think it would be fair to expect mobile phone companies to allow people to use their expensive wireless networks for free to provide their customers with a competing service at an artificially low price.