You are right, the cascades only happen correctly if every step along the way makes use of super. the power of super is that the class don't have to know the full hierarchy of class. In case of refactoring, this makes less bugs.
For me ``super`` **must always** be used in ``__init__`` and all method using polymorphism like ``draw``