Rust has strong functional influences [0] to the point of often being described as an ML with a C-like syntax and manual memory management instead of GC.
Like Haskell [1], writing in a higher level style can give the compiler enough information to get you non-trivial performance gains [2].
It's not just an imperative language. It's multi-paradigm and can be written in a more functional style.
You can just look at the ML family of languages and see which features Rust has that C/Java/Python don't.