It has its own challenges. Consider:
const fn foo(x: &mut i32) { *x += 1; }
(This is not yet stable in Rust, but will be.)