fix identification of argument occurrences in optional arg defaults (#59205)
If an optional argument default depends on a previous argument, we need
to pass the arguments one by one, otherwise we can pass them all at
once. This fixes a bug in that logic that counted quoted symbols as
argument occurrences.
Arguably, internal calls done for the purpose of passing default values
should use `invoke` to make sure only the originally selected method
body can be called, instead of one of the intermediate calls getting
intercepted by a shorter signature with more specific types. But that is
a bit tricky to implement, and is a more significant change, while the
behavior fixed by this PR is clearly not intended, so I think we can
leave it like this for now.