Indeed, disassembly reveals an allocation (with all three
compilers => it's the front-end which generates this crap).
I guess the compiler incorrectly treats { node.value; } as a
delegate and copies the node to GC heap.
void foo() {
int* node = null;
enum mutable = __traits(compiles, {node.value ;});
}
void main() {
foo();
}