This post miss completely the main purpose of projects like rvm and rbenv.
rbenv basically just chooses which ruby (along with the gems that are installed with it) is active on your system.
rvm also provides a gemset functionality that is more like the virtualenv model, where you can have multiple gemsets per version of the interpreter.
What virtualenv doesn't handle as well as either of them is choosing between installed versions of python. What virtualenv does better than both is create an isolated environment for your python program.
* And even then, you don't set the default ruby for the entire system, you set it for your own sessions.