only reason Apple announced six months in advance was the the FCC approval process, being public the iPhone would've been out in any case whether Apple announced or not.
It's also possible they simply didn't trust ATT employees to keep the secret, so they announced the phone publicly before showing it widely within the carrier. With later versions of the iPhone the network doesn't have to make as many changes (like visual voicemail) so they don't have to tell them about it so far in advance.
I don't think that's true. It might have been what they said, but it's February now and we haven't seen any glimpses of iPhone 5 (or whatever) from the FCC, and I'd be willing to bet it launches less than six months from now.
"Jobs unveiled the iPhone to the public on January 9, 2007 at Macworld 2007. Apple was required to file for operating permits with the FCC, but since such filings are made available to the public, the announcement came months before the iPhone had received approval."