Per discussion with Dries, we aren't done with the router conversions yet. #1971384: [META] Convert page callbacks to controllers
However, we know that the new router is the way forward for contrib. We cannot remove the old router until all of core is ported over to it, but we can make sure that contrib doesn't rely on it when we know it's going to break.
Solution: Let's whitelist core modules and core tests modules to allow them to use the old router until they're ported over, but block any other module from using the old router. That should be easy enough; declare a whitelist in menu.inc and if a module doesn't match that list, don't dump it to the menu_router table. (Maybe watchdog/dsm something; probably not an exception though as that would break the entire build process.) Then any contrib module trying to use the old API just doesn't work, which is exactly what we want.
We can remove that whitelist along with the old router whenever we're ready to do that.
Anyone want this before I get there? :-)