I don't think there's truly a concept of "logical" immutability for a language to expose in a coherent way. Logical immutability is one of the C++ misfeatures [removed by D](http://dlang.org/const-faq.html#logical-const).