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 
typedef std::map<std::string, std::string> StringMap;
    StringMap destdata;
    bool IsChange() const { return m_change; }
    const std::string& GetLabel() const { return m_label; }
    void SetLabel(const std::string& label) {
        m_change = false;
        m_label = label;
    }
};
struct CRecipient
{
    CScript scriptPubKey;
    CAmount nAmount;
    bool fSubtractFeeFromAmount;
};
class WalletRescanReserver; 
/**
 * A CWallet maintains a set of transactions and balances, and provides the ability to create new transactions.
 */
class CWallet final : public WalletStorage, public interfaces::Chain::Notifications
{
private:
    CKeyingMaterial vMasterKey GUARDED_BY(cs_wallet);
    bool Unlock(const CKeyingMaterial& vMasterKeyIn, bool accept_no_keys = false);
    std::atomic<bool> fAbortRescan{false};
    std::atomic<bool> fScanningWallet{false}; 
    std::atomic<bool> m_attaching_chain{false};