Этот способ позволяет сделать фреймворк лучше. Не давать разработчику писать плохой код - одна из важных задач фреймворка.
И да, я не считаю этот метод хаком. Если бы это была недокументированная возможность, то тогда да. А так в доке к пхп явно написано, что два потомка общего родителя имеют доступ к защищенным методам друг друга.