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 
/**
     * Blocks until the wallet state is up-to-date to /at least/ the current
     * chain at the time this function is entered
     * Obviously holding cs_main/cs_wallet when going into this call may cause
     * deadlock
     */
    void BlockUntilSyncedToCurrentChain() const LOCKS_EXCLUDED(::cs_main) EXCLUSIVE_LOCKS_REQUIRED(!cs_wallet);
    
    void SetWalletFlag(uint64_t flags);
    
    void UnsetWalletFlag(uint64_t flag);
    
    bool IsWalletFlagSet(uint64_t flag) const override;
    /** overwrite all flags by the given uint64_t
       flags must be uninitialised (or 0)
       only known flags may be present */
    void InitWalletFlags(uint64_t flags);
    
    bool LoadWalletFlags(uint64_t flags);
    
    bool IsLegacy() const;
    
    std::string GetDisplayName() const override
    {
        std::string wallet_name = GetName().length() == 0 ? "default wallet" : GetName();
        return strprintf("[%s]", wallet_name);
    };
    
    template<typename... Params>
    void WalletLogPrintf(std::string fmt, Params... parameters) const {