Получается, что конструктор базового класса мы не трогаем, соответственно не боимся, что если завтра изменятся параметры конструктора, не придется переписывать кучу классов-потомков.
хук он и в Африке хук, по крайней мере нет необходимости каждый раз звать parent::__construct.
я такое пользую для модулей, система достаточно старая, но данный подход оказался удобен и пока нет причин что-то менять.
наследуемый конструктор формирует минимально необходимый для работы набор объектов(свойства идут в декларации), а в хуке идет логика инициализации самого модуля, если ему мало того, что наколбасил парент-конструктор.
но конструктор придется переопределить и ручками звать хук, если куча из парент-конструктора будет не нужна.
в общем кмк подход зависит от того, что нужно чаще.