Earlier quoted context omitted.
It's still a programmer error when they accidentally call a function with 2 arguments when they meant to call it with 3. The fact that the language can't inform them of the error doesn't change that.
So do some error checks. The first unit test I write for any function is that it handles arguments correctly.
A) Silently ignore errors in param counts, get cryptic bugs later when a trivial merge changes a function signature, or when changing a function signature.
B) Add explicit code to check the parameter counts at a huge cost (a per-function overhead!) along with extra tests for this silly thing for each and every function. This overhead is insane!
I have to choose between cryptic bugs and insane overhead, all for what? So you can use "args" and not "*args"?
This is a catastrophic choice for the language.