Yes, check out Onename - it's exactly what you're describing.
It allows users to register usernames and associate those names with Bitcoin addresses.
And the key part is that these usernames are registered in a decentralized namespace according to Open Name System (a decentralized naming protocol).
The decentralized namespace part means that anyone can look up the username-to-Bitcoin-address mappings directly in the blockchain (using something like opendig) and trust that the information is correct.
Further, any wallet or exchange can support "pay by username" or "withdraw by username" just by looking up the data in the blockchain.
Disclosure: I'm one of the creators of onename and ONS.