Is there a reason rubygems.org can't return all of the dependencies, instead of one layer at a time?
Another option would be to query for all dependencies of a specific version of a gem. That would reduce the amount of data, but it would still mean more work for the server and it would produce a lot more data to cache (much of which would never be queried more than once)
With the currently applied method, only the data that's really required must be queried and it can easily be cached on the server side too.