The thing about typing is that it is easy for a deterministic compiler to flag violations.
There are hundreds of other "best practices" that determinisitic compilers aren't able to flag. Even the almighty Rust language is suceptible to race conditions, deadlocks, and many potential crash conditions.
I'm an old C programmer, and Rust pisses me off when it won't let me do something that's demonstrably 100% safe. However, a lot of the things that Rust and other general practice rules forbid or advise against, should really be avoided when they get past a very simple application. What was "proven safe" quickly becomes unsafe when a later maintainer who doesn't understand the risks "extends" the code.