I think if you express your lambda calculus bindings in terms of De Bruijn indices, it might seem less arbitrary, too.
For example, say you're refactoring some code and come across:
def foo(x):
return bar(x)
You decide to simplify this definition to: foo = bar
Congratulations, you've just performed η-reduction! https://en.wikipedia.org/wiki/Lambda_calculus#%CE%B7-reducti...