I want to throw some ideas out there about how it can someday be done in a decentralized fashion using open technologies such as WebFinger, Portable Contacts, AtomPub, and Activity Streams. (And maybe Salmon. Read on.)
The proposal would let you address any user of any application in a complete decentralized way.
And not only is this process fully decentralized (i.e., there doesn’t need to be a Google in the middle), it delegates very well, so that domain owners wouldn’t have to implement it themselves – but they could later if they wanted to.