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 
LOCK(cs_);
    return vMasterKey.empty();
}
bool CWalletLock()
{
    if (!IsCrypted())
        return false;
    {
        LOCK(cs_);
        if (!vMasterKey.empty()) {
            memory_cleanse(vMasterKey.data(), vMasterKey.size() * sizeof(decltype(vMasterKey)value_type));
            vMasterKey.clear();
        }
    }
    NotifyStatusChanged(this);
    return true;
}
bool CWalletUnlock(const CKeyingMaterial& vMasterKeyIn, bool accept_no_keys)
{
    {
        LOCK(cs_);
        for (const auto& spk_man_pair  m_spk_managers) {
            if (!spk_man_pair.second->CheckDecryptionKey(vMasterKeyIn, accept_no_keys)) {
                return false;
            }
        }
        vMasterKey = vMasterKeyIn;
    }
    NotifyStatusChanged(this);
    return true;