in reply to non-CPAN module distributions
Yes. You have nothing to gain by making separate installations unless you intend to use these modules in separate places. I don't really understand the problem with the unit tests. You can make as many tests as you want and they can test anything you want. I have a whole bunch of different test files in my current project, all testing different modules, and they all just sit in my t/ directory.
what is a good way to determine which version of each module is currently installed on a system?
Add a $VERSION variable to each module.
what is a good way to handle the build process so that only those modules that have been modified are rebuilt? I can do a CVS update of the module sources on each system, but I need some way to determine which modules need to be re-built and re-installed.
This is an example of why you shouldn't split these up. Your global Makefile idea would probably work though.