They can, but without UB (in Java, or in Zig with .unordered); the C++11 memory model is a choice. Also, the desire to not have any UB is not justified as strongly as the desire to have spatial and temporal memory safety, and since restrictions also exclude correct programs, which leads to more unsafe, it's definitely not a pure win.