Earlier quoted context omitted.
Why can't the usernames be like email addresses? send email to username@example.net => lookup example.net => pull MX record => route email to example.com Looks like a SRV record[1] could be used for this. [1] http://en.wikipedia.org/wiki/SRV_record
"Why can't the usernames be like email addresses?" [in the sense of querying DNS to find them]. In this context we're talking about what it takes to avoid relying on DNS (because DNS is a centralized, highly politicized system). Your solution would still rely on DNS.
In a truly decentralized system, you're not going to be able to have readable unique names without collisions. Why? What happens when the network splits, then people on either side of the split setup the same username. How do you rectify this when the network rejoins? How do you know that the network has split vs. a node going offline (if you wanted to do something like shut down new usernames until the network was whole again)?