I agree that the type system in Rust is nice. Yet, Julia is considerably more open in that every function is generic and can potentially be re-defined. Further, as data types are values even dispatch on specific values is possible and e.g., used to implement chain-rules or inverses for functions.
To me, a major difference is that Rust distinguishes between generic functions – which have a single implementation – and methods – with multiple definitions for different types (had discussed that difference previously in the context of Haskell). Thus, more thought is required up-front about what should be extensible and what not, which might be a good thing, but also restricts potential combinations/re-use when these had not been considered.