CVS fits their development methodology just fine, so far. Having a central CVS repo, where development is done in "head" which gets branched every 6 months for a release.
Contributions are supposed to never break "head", so mostly small easy to review patches are commited. Even big changes are committed on a per patch basis, working towards a bigger goal.
Also there is AnonCVS, which mirrors the central CVS repo on dozens of mirrors. The same way you can mirror the CVS repo for yourself locally.
Sure CVS+AnonCVS+diff(1) could be better(whatever that means), but it does the job. Switching is hard, losing history is bad and putting off old developers is way more dangerous than discouraging new ones.
Using mailing lists and CVS is the price to pay to partake.
> CVS fits their development methodology just fine, so far.
That's what I am saying. However, there is a big difference between "we use CVS for good reasons" and "we are not aware of the limitations of CVS compared to modern DVCS". That's the difference between "sane" engineering conservatism and a "get off my lawn" attitude.