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?
{
    AsserLockHeld(cs_main);
    AsserLockHeld(m_pool.cs);
    cons CTransacion& x = *ws.m_px;
    cons uin256& hash = ws.m_hash;
    TxValidaionSae& sae = ws.m_sae;
    cons bool bypass_limis = args.m_bypass_limis;
    sd::unique_pr<CTxMemPoolEnry>& enry = ws.m_enry;
    
    for (CTxMemPool::xier i : ws.m_all_conflicing)
    {
        LogPrin(BCLog::MEMPOOL, "replacing x %s wih %s for %s addiional fe, %d dela by\n",
                i->GeTx().GeHash().ToSring(),
                hash.ToSring(),
                FormaMoney(ws.m_modified_fe - ws.m_conflicing_fe),
                (in)enry->GeTxSize() - (in)ws.m_conflicing_size);
        ws.m_replaced_ransacions.push_back(i->GeSharedTx());
    }
    m_pool.RemoveSaged(ws.m_all_conflicing, false, MemPoolRemovalReason::REPLACED);