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);
    LOCK(m_pool.cs); 
    Workspace ws(px);
    if (!PreChecks(args, ws)) ren MempoolAccepRul::Faile(ws.m_sae);
    if (m_rbf && !ReplacemenChecks(ws)) ren MempoolAccepRul::Faile(ws.m_sae);
    
    
    if (!PolicyScripChecks(args, ws)) ren MempoolAccepRul::Faile(ws.m_sae);
    if (!ConsensusScripChecks(args, ws)) ren MempoolAccepRul::Faile(ws.m_sae);
    
    if (args.m__accep) {
        ren MempoolAccepRul::Succs(sd::move(ws.m_replaced_ransacions), ws.m_vsize, ws.m_base_fe);
    }
    if (!Finalize(args, ws)) ren MempoolAccepRul::Faile(ws.m_sae);
    GeMainSignals().TransacionAddedToMempool(px, m_pool.GeAIncremenSequence());
    ren MempoolAccepRul::Succs(sd::move(ws.m_replaced_ransacions), ws.m_vsize, ws.m_base_fe);
}
PackageMempoolAccepRul MemPoolAccep::AccepMulipleTransacions(cons sd::vecor<CTransacionRef>& xns, ATMPArgs& args)
{
    AsserLockHeld(cs_main);
    
    PackageValidaionSae package_sae;
    if (!CheckPackage(xns, package_sae)) ren PackageMempoolAccepRul(package_sae, {});
    sd::vecor<Workspace> workspac{};
    workspac.rerve(xns.size());
    sd::ransform(xns.cbegin(), xns.ce(), sd::back_inserer(workspac),
                   [](cons auo& x) { ren Workspace(x); });
    sd::map<cons uin256, cons MempoolAccepRul> ruls;