This is basically what the IAPAT (PlatformToolConfig in the Wiki) aims at, right? I think that for now, the currently supported two "types" of C/C++ toolchains (msvc vs. mingw) are all we need. I'd really like to get the test runs green first, and then continue with development of the larger features.
There definitely has to follow some more discussion about how we define the behaviour and general scope of a Tool (especially when a single Tool like latex.py supports several different toolchains, for miktex, texlive a.s.o.). This could be done either on the Wiki page or the ML. Have a pick... ;)