> Is the coder likely to make a mistake and reuse a Java method name as a fn argument name without realizing it. Probably not.
If this is more or less the deciding question, then I think your decision depends on whether Jarc follows Arc's design philosophy or Java's (or some other one). That is, if it's Arc's, then go with the lexically bound fns and let them make mistakes. If it's Java's or other, then since you say it's probably not a common mistake (and I agree) then you might still go with the coder's fns, but would have to consider the opposite.
Jarc is designed to follow the Arc philosophy. I'm trying to get away from the Java philosophy! ;-)
Good point about Arc letting users make mistakes. Jarc shouldn't go out of its way to avoid coding mistakes, but given two choices considering which might generate less coding mistakes seems a valid consideration.
But the driver is really that I want the compiler to generate the fastest code possible. Minimizing coding mistakes is a post-hoc rationalization.
Since the compiler doesn't (currently) do any type inference, I have to make a choice.