When an optional account is None, it is not passed to the program. This makes it complicated to handle cases with multiple optional accounts or when optional accounts are not last in the list of accounts.
Passing the called program ID for None optional accounts is efficient in terms of tx size and CU, while it preserves the order of passed accounts.