I don't think this was what was said (or at least I hope it wasn't).
Hopefully the word used was "variant", not "variable".
I think it had to do with parameters of type Variant. Variants can
basically hold anything Excel can put into a variable or parameter, and this
includes "missing", when optional parameters are omitted.
Other optional parameters (e.g. integers) must still always hold a proper
value. If the "optional" clause doesn't provide the default, then Excel
will. But with optional Variant parameters, Excel will just poke a code for
"missing" into it.
For some reason, Excel then decides that such subroutines should be visible,
even though ones with optional parameters of other types are not made
visible.
===================
Password protection prevents the user from seeing the VBA code - not from
using it. Therefore it needs to keep the macros visible as they were before
a password.