Would it be possible to do something similar to Steam's "branches" functionality?
The file groups thing I described above should let you accomplish the same thing, Butler can be used for doing branching builds for patched files.