From the manpage:
"""
When ifupdown is being called with the --all option, before doing anything to interfaces, if calls all the hook scripts (pre-up or down) with IFACE set to
"--all", LOGICAL set to the current value of --allow parameter (or "auto" if it's not set), ADDRFAM="meta" and METHOD="none". After all the interfaces have
been brought up or taken down, the appropriate scripts (up or post-down) are executed.
"""
So when called with -a, it'll first call the hooks with IFACE="--all" and then call them again for each interface.
From the manpage:
"""
When ifupdown is being called with the --all option, before doing anything to interfaces, if calls all the hook scripts (pre-up or down) with IFACE set to
"--all", LOGICAL set to the current value of --allow parameter (or "auto" if it's not set), ADDRFAM="meta" and METHOD="none". After all the interfaces have
been brought up or taken down, the appropriate scripts (up or post-down) are executed.
"""
So when called with -a, it'll first call the hooks with IFACE="--all" and then call them again for each interface.