Stefan, you're still describing your proposal in terms of low-level implementation details such as stacks. In the general case, we cannot store environment structures on the stack. Furthermore, in the general case *all* variables in scheme are bound to locations, not values. Only in special cases can we use stacks, and only in special cases can we avoid boxing variables. These are only _optimizations_.
If you're serious about this proposal, please read sections 3.1 and 3.4 of the R5RS carefully. Explain your proposed _semantics_ (not the implementation details) in those terms, where *all* variables are bound to _locations_, and where there is no stack at all (everything is conceptually stored in a garbage-collected heap). We need to understand the *semantics* in the simplest possible terms before we even begin to think about how to implement it. Thanks, Mark