Thank you for your comments. My question was not intended to give any judjment, bjut just to ensure, that my understanding is correct.
I understand, that in the projects that big and that long running as VTK there may be design desisions, which are not appreciated by some decelopers as fortunate. But there are always reasons for this (often - historical reasons, but sometimes something else). And indeed VTK prooved to be good and useful enough to sustain this long, no matter if it is despite of or because of those design descisions.
For this particular topic in my opinion the problem is that it is not easy to build VTK into some project, which tries to keep modern const-correctness well formed. If someone has some ideas (patterns), how to do it, it would be worth sharing in the documentation or in the book.
I personally will try to get away with using “mutable” for VTK objects inside my own classes… It all is a bit messy, but let’s see, how it goes. In the worst case I will have to give up const-correctness…
Another point about introducing it into VTK. I understand, that it is huge work. And the one, how does this job must clearly understand the dependencies. E.g. it makes sense to introduce const-ness first into rendering machinery and only then into algorithms, because as I wrote in the original question it does not make sense to have Algorithm returning const result, if Mapper expects non-const input. So one would have to begin in the reverse direction: renderer, actor, mapper etc. (maybe I am missing something).