Я считаю, что сейчас это запрещено в C ++ 0x. В C ++ 03 было специальное предупреждение для этого преобразования для унаследованного кода, но C ++ 0x удалил его, и теперь вы нарушаете правильность const.
Конечно, я не знаю, удаляли ли его какие-либо реальные компиляторы, но они были бы в пределах своих прав.