As I'm sitting here with my iPhone, eagerly (and as yet vainly) waiting for it to be reactivated via the iTunes store, I was trying to figure out what the failure mode was that allowed this kind of (by appearances on the iPhone support forum, and news from various bloggers who are in line to buy new 3g iPhone) serious problem to occur.
Here's the deal: preceding each and every iPhone upgrade, there would appear to be a needed iTunes 7.7 upgrade. This upgrade itself was sizeable (to be honest, didn't mark down the size). Then, the iPhone 2.0 firmware update had to be downloaded, which was 218Mb additional. These downloads were accomplished without incident. But then you go to activate the phone... and... problems.
Let's say just consider the firmware update. 218Mbytes let's say takes... one minute. That's about what it took for me via comcast. Whatever the rate of new customers getting this update are, they are able to keep up with this load. But they are not able to process the load of (presumably) getting a small amount of information back and forth to your phone to activate it in the same one minute time frame.
In a way, I guess that it isn't too surprising: after all, web servers which are optimized to serve up static content are very, very fast. Back when I used to run thttpd, it could saturate 10Mb ethernet links running on a 486. But it also suggests that Apple should have realized the assymetry, and throttled downloads to allow their downstream processes to keep pace. It would have avoided a lot of frustration.
My iPhone is still bricked into emergency only mode, and now I'm getting -4 errors from the iTunes store. Patience is a virtue. My phone lives again!