It seems that it would otherwise silently skip the rescan for pre-backup used keys that are still waiting to be generated into the keypool?

See also #11249 
continue;
        }
        ExternalSigner signer = ExternalSignerScriptPubKeyManGetExternalSigner();
        return signer_spk_man->DisplayAddress(scriptPubKey, signer);
    }
    return false;
}
bool CWalletLockCoin(const COutPoint& output, WalletBatch* batch)
{
    AssertLockHeld(cs_);
    setLockedCoins.insert(output);
    if (batch) {
        return batch->WriteLockedUTXO(output);
    }
    return true;
}
bool CWalletUnlockCoin(const COutPoint& output, WalletBatch* batch)
{
    AssertLockHeld(cs_);
    bool was_locked = setLockedCoins.erase(output);
    if (batch && was_locked) {
        return batch->EraseLockedUTXO(output);
    }
    return true;
}
bool CWalletUnlockAllCoins()
{
    AssertLockHeld(cs_);
    bool success = true;
    WalletBatch batch(GetDatabase());