The assumptions C/C++ compilers make, and an argument in favour of giving the compiler more flexibility regarding struct layout and padding.
(I believe Rust gives the compiler more freedom for structs that don't cross an FFI boundary.) https://twitter.com/shafikyaghmour/status/991370524008759296