That's helpful. There's a section on constant promotion in the Rust Reference. It says, in its entirety:
[destructors.scope.const-promotion]
Promotion of a value expression to a 'static slot occurs when the expression could be written in a constant and borrowed, and that borrow could be dereferenced where the expression was originally written, without changing the runtime behavior. That is, the promoted expression can be evaluated at compile-time and the resulting value does not contain interior mutability or destructors (these properties are determined based on the value where possible, e.g. &None always has the type &'static Option<_>, as it contains nothing disallowed).
The vibes suggest this was written a while ago, and is due for a rewrite now that constant evaluation is better understood.
This is the only place the word "slot" appears in the Reference.
After reading the first sentence a few times, I think all constant expressions qualify (except for interior mutability and destructors). But it is definitely not the case that all such expressions are stored in the static segment of the executable. Maybe this just means all such expressions have the 'static lifetime, and maybe the same address each time they're evaluated. But even that seems too strong a statement to be true; the compiler isn't even required to evaluate all constant expressions at compile time.
The phrase "without changing the runtime behavior" also seems wrong. Without promotion, lots of programs wouldn't even compile, since promotion changes the value's lifetime. For those programs, you have to assume static promotion to get any runtime behavior at all! And then the behavior could depend on the fact that static promotion happened, since references are pointers.
In the section on constants, the Reference says:
[items.const.static-temporary] A reference to a constant will have 'static lifetime if the constant value is eligible for promotion; otherwise, a temporary will be created.
Hmm. The fact that this is here suggests there's a reason for specifying it. But the spec previously said that "Constants are essentially inlined wherever they are used". Apart from whatever "essentially" is supposed to convey, it seems like that should settle this question, among many others.
In summary, I'm still pretty confused.