It's all about the automation.
In RL, there are a lot of "John Smiths", and it would be non-trivial for a system to figure out which one you wanted to call without some serious hinting (like access to your Facebook, LinkedIn, Twitter, G+, etc. accounts), and it might even have to access a private list of names/numbers to figure out that you probably want the John Smith who works with Alice Bell (an entry in your phonebook)...
if its someone you have him in your friendcircle->app
I believe we need a proper open identity system in general but this could be a start.
The solution wont be facebook.com/nickname nor vox.io/nickname
It will be providerOrContextOrWorkplaces.com/name maybe
The places I've seen that give automatic email addresses have used a formula like first initial, last name, autoincrementing number. I think this is a pretty good system, but if you go worldwide you're going to get nice big numbers - entering name and number almost exactly like you do already. But if you misspell something based on a verbal communication it breaks harder.
How may John Smith's are there in your country ?
So, you'd need a nick registry, like domain names, and you'd run into issues with your friends that have "common" nicks having to register and use a different name. I think this merely trades one well-known set of limitations for a much different and less understood set of limitations without actually truly solving anything.
I guess you'd work around that by having a local address book on the phone, but now I've barely gained anything from that, given I already have a local address book on my phone.
I have a Nokia 6303. I press a couple of buttons and I'm calling the person I want. It's so unbelievably solved.
Buttons? Bah ;)
Thw fundamental problem is the same Numbers are a techincal layer i as a user dont zo know about
You could very well have it on smartphones and the likes without increasing complexity on either the actual phone network or the basic analog handsets.
EDIT: Personally, I think what Google Voice does - giving you a single number per person instead of per device/SIM card - fixes the major problem(s) without breaking backward compatibility. The only problem is the lack of international support.