@richodemus then I think you should use "as" to do the casting instead, as it is much more efficient.
If someone's gonna cast your List back to MutableList and do stupid stuff, let they do it and and let they bear the consequences.
It's like using reflection to change an immutable object, you can't prevent them from doing so.