Thanks, Thomas J. Your solutions are both good.
Yeah, Ladislav showed us the virtues of compose in this regard.
Thinking about it, my intuition is that it can indeed solve a lot of
basic stuff at the expense of a little extra work and syntax
and manual steps not needed in Scheme; but there are some
other uses, probably, that it would not be sufficient for.
For instance, if you wanted x to really be a variable, then
replacing it with a constant wouldn't work.
With scheme you could have some condition later under which
you could execute x: somevalue, and that wouldn't be possible
with the simple use of compose to mechanically replace all
instances of free variables with their current value.
The use of creating an object instance so that you can create a context
is certainly handy. Something like it was already proposed by Larry,
his version had the objects in a gc-safe local called saved inside make-adder.
Anyway, I feel like I have a much better understanding of contexts in Rebol now.
There are still some mysteries, but not so many.
-galt