The argument could be assigned something inside the function, thus overwriting the argument input. I.e. used as an undeclared variable. Isn’t this a bit to generous to allow, syntactically? Or are there situations where this is good/necessary?
args and vars are both local variables. The only difference is that args are initialized from outside the function (by arguments) while vars can be initialized only within the function.
Out of curiosity, what language do you usually program in that prohibits that? (You can make arguments const in e.g. in C++ and that will complain/error if you assign to it, but there’s no const in SC, as far as I know.)