No, unfortunately that is not the case. Lookup happens
at execution of the byte code, because variables
cannot be looked up at byte compilation. Consider the following case:
x = 1
local({
assign(user_input, 2)
print(x)
}, envir = new.env(parent = environment()))
If `user_input` is “x”, the lookup of `x` in the local scope finds a different variable, in a different scope. Hence this lookup
needs to take place every time this piece of code is executed.
I’m not sure if Python suffers from similar problems.