Wireless networks can be crap... they don't work, you can't get a signal, etc. We all know this. So why does iPhone not seem to realize this?
If you're in the middle of writing an email on the subway, you might get interrupted by two or three messages telling you that your phone can't connect to the network, activate EDGE, etc. Why? Why not just have a queue of pending network events, and handle them when the network's available, without bothering the user?
Also, if I've written a few emails while out of coverage that are now waiting to be sent, why doesn't iPhone immediately send them when it sees a network again? What purpose does waiting for the next-scheduled send/receive time serve?
iPhone being built on OS X is great for a tonne of reasons, but mobile just isn't the same, and little things like this are good examples of why BlackBerry's market share is climbing and iPhone's has been dropping for the last little while... it turns out that people care about this stuff.
Fingers crossed for a great new update on Monday at WWDC. :)