Cause now not only do we have that confusing feature which very few people seem to like, it also underlines a worrying trend where the different parts of the Ruby world don't reach a consensus before going in radical directions.
No one summed it up better than Brian Ford at his RubyConf talk really: http://www.confreaks.com/videos/1278-rubyconf2012-toward-a-d...
It's a must-see.
http://www.confreaks.com/videos/1275-rubyconf2012-ruby-2-0-o...
The downside is it becomes even _harder_ to figure out what code is being run just by reading it. Right now, you just have superclasses and included modules, potentially gummed up by method_missing. Now, you need to also pay attention to refinements included by code that _calls_ the code you're looking at, which may change the way it behaves.
Unless used with great care, it's going to create a nightmare debugging situation. And with some of the code I've seen, it'll happen.
Hopefully a lot of the tweaks and refinement will come from now to Final 2.0 release.
LuaJIT is pretty much impossible in a language with as complex semantics as Ruby (it's probably impossible in Python already, and Ruby is significantly more complex)
http://igor-alexandrov.github.com/blog/2012/11/05/yet-anothe...