Several limitations on build flavors exist because of the way build flavors are currently implemented in GPT.
The current flavor labels defined in globus_flavor_labels.conf provide definitions for "C" compilers and linkers. Other compilers and linkers (such as C++ and Fortran) are probed by the globus_core packages and the results are provided for a build environment. However this data cannot be managed by the flavors.
The flavor label is parsed in such a way that the compiler, byte size, debug, thread package order is assumed. The label format was designed in such a way so that it could be used in file and package names.
GPT assumes that any two binaries that are built using different flavors are incompatible. Under some circumstances that may not be true. For example compiler wrappers such as those provided by MPI and code profiling tools (see here for how this is done) may produce binaries that are compatible with ordinary compilers. However GPT does not provide any direct way to mix binaries produced by these tools with other flavors.
Along the same lines a flavor mixing, GPT does not currently support any method of checking the equivelence of flavors. Compatibility is currently only assured if the labels are the same.