To get to the real topic:
In Perl 6, the generic solution to fix this (if one wants to fix it) seems, to me, to be to add a .eval method to objects that represent scopes. I'm not sure if scopes are first class values in Perl 6. Are they? How do you get the current scope as an object? Are scopes just Code objects?
On #perl6, theorbtwo wasn't sure if .eval should be a method on coderefs or blocks. Is there a difference between the two? I always hated this about Ruby; there seems to be no practical value to the separation.
Also, are blocks/coderefs/scopes continuations? Should .eval be a method in Continuation?
I'm having a bit of trouble following you, but I can tell you that the VM portion
treats continuations as well as lexical scopes or pads as first class Parrot
objects (or PMCs).
I cannot say how much Perl6 will expose to the high level language.
Can you tell me what your idea of a "scope" is? I'm thinking a continuation, and if that is what you are thinking, I'm thinking the answer to your question is yes.
-Melvin