One big problem with this is that you still end up having to use raw JS anyway. Debugging is usually a big hassle too.
About the raw JS, to use my current app as an example, I have one line of inline JS (using `...` notation) which is just to initialize FastClick. Writing a ruby wrapper wasn't worth it for one method call. Anytime I see more then 1 line of inline JS inside a file, a ruby wrapper ends up being a much better idea, or indeed using the `Native` class which handles all the corner issues of calling native JS libs.
I think the problem with Opal is the documentation, which needs huge improvements, to show the proper/realistic development experience with it.