Function calls are for, well, calling of functions and not for defining variables. Case 1 makes some sense, because variable is created in a very local scope. Although, for consistency and for backward compatibility, it should probably use val, for example: foo(val arg1 = 1, ...). But I strongly disagree with case 2 where variable is created implicitly and outside of the function call. Also, what should be the value of arg2@foo if foo() was called multiple times?
For now I believe when is the only (?) exceptional case where we can define variables as a part of some language construct. But in when statement val is almost at the beginning of the line, so it is clearly visible. Variables created in function calls would be obscured.