First, the class must document precisely the effects of overriding any method. In other words, the class must document its self-use of overridable methods.
Heh. The internal method calls in effect become part of the API: you guarantee forever which calls will be made when. I see his point, but feel this shouldn’t be needed, unless you’re trying to expose hooks that subclasses intentionally provide. But this feels more like an abstract class pattern than inheritance from concrete class.