Interestingly, there's a comment there that indicates that the cost is much lower on JRuby. Be interesting to see if this is true, and what the cost is like on Rubinius? Possible low-hanging fruit for MRI to improve?
I wonder if it costs less in JRuby or if JRuby's version of yield is less optimized.
It's probably that jruby is just much more likely to inline it either way, at which point whether it was reified or not doesn't matter, unless you call something other than .call on the Proc object.