We already have an existing problem where we offer a macro expansion that can be overridden outside of the presets, but the macro expansion doesn’t give the correct final value. The ${generator} macro expands to what the presets resolve the generator too, but if the user overrides that with a -G option on the cmake command line, ${generator} won’t reflect the user’s override, it still expands to the preset-determined value.
@kyle.edwards would be more familiar with the internals, but I assume the presets are resolved before the other cmake command line options are processed. I assume this is so that the command line options will override the presets. If the command line values are needed to resolve the presets, then we have somewhat of a circular dependency.
What you want to do is reasonable, and I share your desire to be able to do what you have laid out. But the practicalities of the implementation may be trickier than it would naively seem.