I can understand the issue you have with calls out to "ruby" Charles, but this is a difficult one. It's caused me pain in the past too, where I actually /want/ to make a new process using the binary ruby (don't ask). It's obviously hard to balance user error vs. practicality, but I have to ask, how do you actually workaround this behavior cleanly?
The fact is, users should be using RbConfig::CONFIG['ruby_install_name'] and so on (or Gem.ruby). I'd also say the ruby spec would be MASSIVELY enhanced if these kinds of details were better exposed by all interpreters. Furthermore, in this specific case, Kernel.ruby(*args) would also be appropriate to save reconstruction from rbconfig members.
I'm also trying to move RubyGems toward more sanity in this area. I think this is important for the language as a whole, as these issues come up elsewhere too, for example on systems where people have two rubies installed, for example "/usr/local/bin/ruby1.9" and "/usr/local/bin/ruby1.8". These things have been a problem for a long time, and it's another of the things that's only been solved by symptom - rvm does that fantastically - but it's not appropriate for packagers.
I've tried raising this before, maybe you have more clout with -core than I do, but IMO, this needs fixing there too, and in -spec.