@chemoelectric Yes, this is a very good technique. It is called "shallow binding" in Lisp, and it was crucial to efficient Lisp implementations when they used dynamic scoping. You may enjoy reading Baker's "Shallow binding makes functional arrays fast" from 01991: https://dl.acm.org/doi/pdf/10.1145/122598.122614