I'm new to this so I don't know much, but if I'd to say I'd guess that one reason might be performance and memory.
Gcc and clang have the "aligned" attribute and in his C atomics library Jeff Preshing was using that (together with volatile). So there must be cases where it does not align.
