You are mistaken about rust. I can't think of a construct that is not an expression.
let x = 5;
(That said, very nearly everything is an expression, yes)SML is explicit about it and its syntax makes it clear what type of binding is going on.
val x = 5
fun f = fn x => x * x
datatype weekend = Sat | Sun
So while on top level not everything is an expression, everything on the RHS is an expression.