MRI manages the frame's self differently, just saving it into the
binding and then putting it in the sole global state field that
represents the current thread's active frame. In our case, we use
the entire Frame object as a carrier for frame data, so we need
to keep the object the same for mutable frame fields like backref
to propagate. As a result, the only fix possible for this on 1.7
is to change the self back after instance_eval.
We may be able to fix this better on master, where the runtime
has been restructured and may support a more correct notion of the
current frame's self.