Today, 4/8/12, I called AT&T to unlock my contract free 3GS. Took 30 minutes on T's end to get the unlock code, and only 5 minutes to perform a backup and restore via iTunes. Interestingly enough, the phone number shows as NA in the iTunes screen. Same IMEI and ICCID if you click on the same spot.
According to AT&T, the requirements to receive an official unlock are:
A customer’s account must be in good standing, their device cannot be associated with a current and active term commitment on an AT&T customer account, and they need to have fulfilled their contract term, upgraded under one of our upgrade policies or paid an early termination fee.
AT&T enters to iPhone's IMEI number into Apple's database and the next time the iPhone is connected to iTunes, Apple will authorize and perform the unlock. It's an unusual but fairly straightforward process.
Again, kudos to AT&T for seeing the light and providing this service to their customers.
If you're calling AT&T today to request your official iPhone unlock, jump into our forums and let us know how it goes for you.