Rust is a constructive proof that your assertion is simply false. It comes at the cost of some complexity—every Rust type carries thread-safety information with it—but the benefit is that writing correct parallel Rust code becomes very easy.
What you cannot easily do in Rust is dynamically switch thread safety on or off.
What you cannot easily do in Rust is dynamically switch thread safety on or off.