No. C does not do exactly what you tell it to do. Not with modern day optimisers transforming your code in all kind of interesting ways and doing totally weird things if you accidentally hit some undefined behaviour (as defined by the C standard)
Those "arguments" you might have with the Rust compiler are no different that the arguments you will have with your failing tests, and debugger after your C code has compiled. The problems of getting your types lined up and lifetimes of data are the same in both cases.
I for one would rather have the compiler check all those things rather than have to review against 1000 page coding standards that try to avoid the same problems and then debug the cases I overlooked.
I cannot understand why programmers resist automating away that tedious work.