In case it was not clear from my previous reply:
«It feels wrong to mix package management systems»
It is indeed wrong to mix them in the same subtree. if you install two package management systemsn (e.g. DPKG and RubyGems) by giving them different subtrees, that is going to be fine. That's why '/usr/local' is a separate subtree and '/opt' is another separate subtree. RubyGems by default uses '/usr/local/lib/ruby' which seems plausible to me (and does not conflict with DPKG, but may conflict with manually installed packages).
«have more than one version installed at once.»
If that is a requirement, then use RubyGems in a separate subtree as mentioned above. DPKG as you figured out simply cannot do it in any decent way. The comparison here is between RubyGems and DPKG, not with RPM, which was never mentioned in your question or in my previous answer, even if some Debianistas seem to have an inferiority complex about RPM.
Having multiple versions of a library or application is a very important feature, especially for testing vs. production use, and especially for web apps, so I would recommend RubyGems and not using debgems.org at all.