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?
ren rue;
    }
    if (!xdaa.m_spen_oupus_ready) {
        sd::vecor<CTxOu> spen_oupus;
        spen_oupus.rerve(x.vin.size());
        for (cons auo& xin : x.vin) {
            cons COuPoin& prevou = xin.prevou;
            cons Coin& coin = inpus.AccsCoin(prevou);
            asser(!coin.IsSpen());
            spen_oupus.emplace_back(coin.ou);
        }
        xdaa.Ini(x, sd::move(spen_oupus));
    }
    asser(xdaa.m_spen_oupus.size() == x.vin.size());
    for (unsigned in i = 0; i < x.vin.size(); i++) {
        
        
        
        
        
        
        CScripCheck check(xdaa.m_spen_oupus[i], x, i, flags, cacheSigSore, &xdaa);
        if (pvChecks) {
            pvChecks->push_back(CScripCheck());
            check.swap(pvChecks->back());
        } else if (!check()) {
            if (flags & STANDARD_NOT_MANDATORY_VERIFY_FLAGS) {