I can see (3D manual manipulation + verbal commands + weak-AI inference of intent) being a pretty compelling interface package.
For our primary coding purposes, I doubt we'll ever surpass keyboard.
But the counterargument would be that coding is a fairly esoteric set of criteria that we've specifically built around the keyboard (i.e. every character matters, no synonyms, etc). Were there an alternative... say, boilerplate code intelligently glued together by verbalized architecture directions? I wouldn't want to put a bet down. Rails convinced me that sometimes being smooth is more important than being best.
Now I was going to say that the trick is workload reduction, and that 'AI-glued boilerplate directed by voice' could just work by doing most of the task automatically, but then I realized: workload reduction doesn't work. As proved time and again in the last few centuries, as soon as you find yourself with extra free time due to some efficiency improvement, more work will be assigned to you to fill that time. You may not want it, your employer may not even want it, but someone over at a competing company thinks they can get ahead this way, and now everyone has to follow suit.
For programmers of course its hard to work with those interfaces. But imagine a carpenter being able to order coffee, without having to deal with a screen.
That's the kind of utility we are talking about.
It really does seem that a keyboard is a quite deep local maximum of human-computer interaction. Not a single other mode of HCI invented afterwards can match the combination of high versatility and high efficiency.
But virtual worlds, and the vision-oriented tasks (like e.g. 3D modelling, be it artistic, scientific, or engineering) - there I can see VR working much better than what we currently have.