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 
return nullptr;
        }
        else if (nLoadWalletRet == DBErrorsNONCRITICAL_ERROR)
        {
            warnings.push_back(strprintf(_("Error reading %s! All keys read correctly, but transaction data"
                                           " or address book entries might be missing or incorrect."),
                File));
        }
        else if (nLoadWalletRet == DBErrorsTOO_NEW) {
            error = strprintf(_("Error loading %s Wallet requires newer version of %s"), File, PACKAGE_NAME);
            return nullptr;
        }
        else if (nLoadWalletRet == DBErrorsEXTERNAL_SIGNER_SUPPORT_REQUIRED) {
            error = strprintf(_("Error loading %s External signer  being loaded without external signer support compiled"), File);
            return nullptr;
        }
        else if (nLoadWalletRet == DBErrorsNEED_REWRITE)
        {
            error = strprintf(_("Wallet needed to be rewritten restart %s to complete"), PACKAGE_NAME);
            return nullptr;
        } else if (nLoadWalletRet == DBErrorsNEED_RESCAN) {
            warnings.push_back(strprintf(_("Error reading %s! Transaction data may be missing or incorrect."
                                           " Rescanning ."), File));
            rescan_required = true;
        } else if (nLoadWalletRet == DBErrorsUNKNOWN_DESCRIPTOR) {
            error = strprintf(_("Unrecognized  found. Loading  %s\n\n"
                                "Th might had been created on a newer version.\n"
                                "Please try running the latest software version.\n"), File);
            return nullptr;
        } else if (nLoadWalletRet == DBErrorsUNEXPECTED_LEGACY_ENTRY) {