If it's bind-on-function-creation, then you'd
get the semantics you desire. But I suspect there are other uses
for such interior funtions where bind-on-application is handy

Hmmmm, it's possible to get both, sort of. The approach would be
bind-on-application, *but* the "copy" that occurs upon returning a function
value is itself viewed as an application, so binding would occur at that
point for variables that are about to go out of scope. (So any *global*
variables would remain bind-on-application.)

Surely the LISP folks have been all around this six-ways-to-Sunday.
Would be handy to know what they decided is the least crazy approach.