Есть ли объективные причины отказаться от аннотации?
Почему аннотации это плохо? Потому что аннотаций в PHP нет (во всяком случае пока). А то что есть - это кастыль основанный на phpdoc.
В целом аннотации это хорошо и удобно. Если вы делаете что-то что будут использовать сторонние разработчики, не пользуйтесь аннотациями, yaml дает больше гибкости в плане управления конфигурацией. Но опять же это весьма спорный момент.
Есть еще одно НО. Скажем я когда-то был категорически против использования аннотаций в сущностях доктрины. Представьте себе типичный проект на symfony. У нас есть какое-то поле и мы должны написать туда минимум аннотацию для доктрины и аннотацию для валидатора. Если мы пишем апишку то появляются всякие сериализаторы и прочая чушь, документация к API и тд. Ну и собственно сам phpdoc. В итоге на одно поле сущности выходят минимум 5 строк в phpdoc с аннотациями.
Но выход из этой ситуации очевиден: перестать использовать сущности доктрины вне сервисного слоя (в контроллерах, формах и прочей чуши), валидировать только DTO, добиться того что бы модель в принципе не могла войти в невалидное состояние. И тогда остаются только аннотации для доктрины, с чем я смириться могу поскольку я ленивая ж. Валидировать же реквест или форму довольно просто.
Короче в чем мысль, аннотации и атрибуты это клевая возможность декларативно определять как система должна себя вести. Но многие разработчики уж как-то сильно перебарщивают с этим. В остальном это лишь дело вкуса.
В случае, если аннотации используются для роутинга, роуты невозможно отсортировать в нужном порядке. Приходится в итоге все равно прибегать к yaml: пример