The issue here is not with buildbots, but with installation on POSIX platforms. We do now have a couple of buildbots that install Python to a local location before running the tests, which is what flushes this out (see https://github.com/python/buildmaster-config/blob/master/master/custom/factories.py#L134-L147; they simply run `make install` before running the tests).
Adding these buildbots as pre-merge CI is not currently an option due to security implications (I don't want unreviewed code running on my home network). I have plans to eventually allow certain builders to be run pre-merge iff the `awaiting merge` label is present on the PR, but I haven't had time to work on that yet.
It might be possible to adjust one of the Travis builds to install before running tests, but that leaves some other tests un-run, which just relocates the problem.
Removing reliance on an explicit listing of directories sounds nice, but does open up the possibility of installing more than expected if run from a dirty checkout.
What about adding a "new directories added to Makefile.pre.in" check to Tools/scripts/patchcheck.py?