I mean, not really? I wouldn't put it that way. You do have a lot of expressive freedom. You can do something like OOP if that's what you really need right now for instance. It's not built in but it's not hard to design with macros and Synthizer spun up a whole Synthizer-specific class system with downcasting and all that in like 100 lines of macros and an hour of work. But it's a language for the C/C++ application space and a lot of what it does is something along the lines of "we don't let you do this thing you could do in C, but if you do the thing in C you'll probably have bugs anyway". But where it really shines is things like threading, where you just kind of get to go have at it without issue save perhaps for deadlocks, and fast networking, because they really, really got their async networking story right. But the borrow checker is a thing, and so is the fact that it's more along the lines of the functional languages and in fact the earliest versions of the compiler were written in Ocaml, I believe.
there's lots of things I can express in Rust with zero performance overhead and in a quite readable fashion that Python can't do for example. It's not "our way or get the fuck out" that's unique to Rust, it's that the Python way is so natural to most people due to being the dominant paradigm that even though Python also has a "get the fuck out", you're so used to it that you don't notice that it does. Python likes classes. Rust likes monadic composition and readable iterator chains. You can't really do either in the other language well (it can be done, just not without significant cognitive overhead).
You can also drop into unsafe Rust at any point and unsafe Rust is C plus some goodies pretty much and can generally do anything C can exactly how C would do the thing.
My BlogTwitter: @ajhicks1992