Keep in mind that ruby version managers like rbenv and rvm are relatively recent creations. Before they existed, an admin user would usually install ruby in a system-wide location like /usr/local. But non-admins needed a place to install their own gems, since they didn't have write permission under /usr/local . So the rubygems creators decided to add a secondary gem path in the current user's home directory, which would have a similar structure to the system location.
Here's an example of what the gem paths looked like in the old days:
- /usr/local/lib/ruby/gems/1.9.1
- /Users/kelvin/.gem/ruby/1.9.1
There still may be machines where ruby is installed like this, and you still have that recourse of the automatic secondary gem path. Of course you can also add more paths using the GEM_PATH environment variable, but the auto one is nice for handling the common case.
If you have admin rights, or you use a version manager, you can just ignore the ~/.gem dir as an artifact, a relic of the past if you will.