There is simply no way you can enforce "thread safety on ALL data", unless you pay unreasonable amount of synchronization costs, which in that case, is a trivial thing to accomplish.
This is as same as some one tell you that you will never loose any money by investing a certain asset.
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.
This is as same as some one tell you that you will never loose any money by investing a certain asset.