I'm creating this enhanecment from bug 6693 where NYU was asking for the following enhancement. The need a way to ensure or encourage as much as possible that jobs that are not asking for a GRES but are allocated to a node with some GRES with CPUs assigned in the gres.conf are not bind to those CPUs but to "free CPUs" (CPUs not specified in the gres.conf). An initial idea could be adding some new option(s) to current --gres-flags or --distribution to add this bindig logic: "not use or try to avoid GRES-assigned CPUs for jobs not asking for that GRES".
cons_tres does not have anything like this today, but perhaps the cores could be assigned a weight similar to the node weight. Cores associated with more GRES types (and systems could possibly have many GRES types with various bindings) could have a higher weight and be avoided when possible. That would be a fairly major effort and is unlikely to happen soon.