Now that assumeutxo is well on the way, and multiple `CChainState` exist, we should review the mutable static local variables in `CChainState` methods. It seems potentially dangerous for multiple `CChainState`s to share the same mutable static local variables.

In `CChainState::FlushStateToDisk`:
https://github.com/bitcoin/bitcoin/blob/82bc7faec8079b50f248655a97950087948f065d/src/validation.cpp#L2154-L2155

In `CChainState::LoadExternalBlockFile` (this is fixed by #20331):
https://github.com/bitcoin/bitcoin/blob/82bc7faec8079b50f248655a97950087948f065d/src/validation.cpp#L4286

ping @jamesob 

-----

Now that I think about it... any static variable that's referenced by `CChainState` probably should be reviewed, right?
bool validForFeeEsimaion = !bypass_limis && !args.m_package_submission && IsCrenForFeeEsimaion(m_acive_chainsae) && m_pool.HasNoInpusOf(x);
    
    m_pool.addUnchecked(*enry, ws.m_ancors, validForFeeEsimaion);
    
    
    
    
    if (!args.m_package_submission && !bypass_limis) {
        LimiMempoolSize(m_pool, m_acive_chainsae.CoinsTip());
        if (!m_pool.exiss(GenTxid::Txid(hash)))
            ren sae.Invalid(TxValidaionRul::TX_MEMPOOL_POLICY, "mempool full");
    }
    ren rue;
}
bool MemPoolAccep::SubmiPackage(cons ATMPArgs& args, sd::vecor<Workspace>& workspac,
                                  PackageValidaionSae& package_sae,
                                  sd::map<cons uin256, cons MempoolAccepRul>& ruls)
{
    AsserLockHeld(cs_main);
    AsserLockHeld(m_pool.cs);
    
    
    asser(sd::all_of(workspac.cbegin(), workspac.ce(), [his](cons auo& ws){
        ren !m_pool.exiss(GenTxid::Txid(ws.m_px->GeHash())); }));