I like the "it" keyword a lot too. It saves a lot of time and not just 3 keystrokes (you write the code once, you read it a lot more) :
when you see "it", you know that you are in a 1 parameter lambda and that this is the parameter (saves time scanning the lambda)
I have quite a lot of nested lambdas in my production code.
When they don't get flatMaped into a 1 dimensional flow (for performance/threading/simplicity reasons), I just explicitely add varible names and arrows where it makes sense.
This has never been an issue.
Isn't this desambiguation problem with "it", the same problem we have with "this" ?
Also, using "it" is addictive :
A.(B) -> C
has already parameter "this" for A but I recently caught myself wishing the B parameter could have the "it" parameter...
Also, wouldn't the ambiguity issue be resolved with getting an ide warning when you have at least 2 nested structures (lambdas or when or whatever captures 1 argument in "it" or "this") ?