Предположу, что этот кусок был сделан очень давно и головой не сильно подумали тогда.
А теперь вводить интерфейс - можно переломать код у кучи проектов.
Там очень жестко к breaking changes относятся, поэтому фреймворк местами обрастает костылями и вёслами
Сложно додуматься, что к слушателям хорошо бы интерфейс приделать? Иначе что за шляпа: чтобы узнать, какой метод писать, надо лезть в доку и увидеть, что нужно писать handle, а еще есть subscribe. В симфони в этом смысле получше.