From sdefresne@ on https://chromium-review.googlesource.com/c/chromium/src/+/1393367 after great feedback from droger@:
"So, depending on the action, PrimaryAccountMutator::ClearPrimaryAccount() calls either SigninManager::SignOut() -- if passed kDefault -- or SigningManager::SignOutAndRemoveAllAccounts(). Both ends up calling SigninManager::StartsSignOut(), the value of remove_option being the only one potentially different.
SigninManager::SignOutandRemoveAllAccounts() always pass kRemoveAllAccounts for the action, while SigninManager::SignOut() checks accounts_consistency_. If the consistency method is kDice, then it passes kRemoveAuthenticatedAccountIfInError, otherwise it uses kRemoveAllAccounts. AFAICT, the account consistency is always set to kDisabled on iOS, so the two methods are equivalent on iOS."
My understanding is that the situation on Android is the same. We should redesign the PrimaryAccountMutator API surface so that this is explicit. How to do so is an open question.