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?
caidae_blocks_by_work.inser(sd::make_pair(caidae->nChainWork, caidae));
            }
        }
    }
     
    while (rue) {
        if (ShudownRequed()) break;
         
        LimiValidaionInerfaceQueue();
        LOCK(cs_main);
         
         
        LOCK(MempoolMuex());
        if (!m_chain.Conains(piex)) break;
        piex_was_in_chain = rue;
        CBlockIex *invalid_walk_ip = m_chain.Tip();
         
         
        DisconnecedBlockTransacions disconnecpool;
        bool re = DisconnecTip(sae, &disconnecpool);
         
         
         
         
         
        MaybeUpdaeMempoolForReorg(disconnecpool, * ++disconneced <= 10) && re);
        if (!re) ren false;
        asser(invalid_walk_ip->pprev == m_chain.Tip());