I'm sure I'm overlooking something, or working from a mistaken assumption -- basically I'm so baffled here, you can't say anything that will offend me for being too obvious.
In a specs-based deployment in particular, what is the point of variables? It appears to me they can only be defined in the repository, which means they can be set per-project or per-environment in code only.... And so they're a bit of a "syntactic sugar" over repeating a value throughout the file, but there's no way to, say, reuse the specs of a single environment in multiple environments by setting different variables.
This appears to be the case for projects created through the UI, too -- variables are set at the same level as the rest of the config (or higher) and so just don't seem useful to me. The entire config has to be duplicated to have a place to set values for those variables.
I get the purpose of globals. But at the project or plan level, how are they used?