It's still possible to incorrectly use relaxed operations, and have your algorithm only incidentally work because the compiler hasn't reordered them and you're on a CPU with a stronger memory model.
But yes, it's an order of magnitude easier to get portability right using the C++/Rust memory model than what came before.
But yes, it's an order of magnitude easier to get portability right using the C++/Rust memory model than what came before.