I'm strongly tempted to split the file support libradies from the CP/M core libs.
It would permit to choose between the file only support, the devices enabled one and ndos (to save some memory when files are not necessary at all).
Another (minor) reason is that MSX2 is CP/M compatible but could have its own driver set.