I appreciate how openly you report the negative result here. Most write-ups would bury "the answers stayed the same" — you put it in the summary and then worked through why. That honesty is what makes the post useful.
The explanation that stuck with me is that a graph built from references only finds links someone already wrote down. Where nobody wrote the link, the documentation was apparently already doing most of the work anyway. And the measurement section is a checklist in itself: the baseline was wrong, load distorted the timing, and a held-out set gets used up once you fix what it found. Keeping the graph as a read-only tool next to grep, plus the gate that checks decision numbers exist, feels like exactly the right-sized outcome — not every build has to replace something to be worth keeping.