I'm not sure what you mean about unique pointers and const-ness. Can you explain? You can make unique pointers mutable:
fn main() {
let mut x = ~5;
*x = *x + 1;
println!("{:d}", *x);
}
Or did you mean something else?