Теперь тем кто вызывает заменяемый метод надо быть очень аккуратным - так как можно случайно не соблюсти какие-то внутренние инварианты класса при замене, а вызывающий код может понадеяться на это.
Я бы запретил вызывать оттуда private члены, например в-общем получается, что это как событие с дефолтным подписчиком, но не событие