Почему разработчики так безаппеляционно утверждают, что один фронт-контроллер лучше?
С одной точкой входа можно не париться по поводу маршрутизации вообще. Вы добавляете новый маршрут в конфиг и заворачиваете его на нужный контроллер. Всё. При грамотной автозагрузке, вам не надо заморачиваться по поводу того, какие классы нужны для этого конкретного контроллера. Когда количество маршрутов приближается к сотне, начинаешь понимать, что так значительно проще.
Как по мне, вопрос спорный. Ваши аргументы уместны, но я вот что думаю.
1. По поводу статики. Если статика действительно статика – то она должна отдаваться совсем отдельно. Если в ней всё-таки участвует движок – это уже не статика.
2. Ну и сама суть. Не знаю, почему, но мне как-то даже эстетически приятнее и красивее, когда в проекте одна точка входа, а не несколько в разных местах. Я согласен с тем, что инициализацию можно подключать отдельным файлом. Но это либо каждый файл начинать с подключения init-файла (как по мне, эстетически некрасиво)), либо ещё и помнить, какой файл является точкой входа, а какой нет. Ничего уже не говоря об относительной адресации внутри файловой системы.
В своё время в своём проекте использовал что-то такое. Есть одна точка входа. В url передаётся модуль, action и любые дополнительные параметры. App инициализируется, парсит request и передаёт управление нужному классу со всеми остальными параметрами. И это реально круто.
Несмотря на то, что ЧПУ уже не так актуальны, как раньше, с несколькими точками входа без маршрутизации через mod_rewrite сложно реализовать ссылки вида /news/ofigennaya-novost-s-dlinnym-zagolovkom-v-url. Да и даже если извращаться, приятнее в URL видеть предыдущую ссылку, чем /news.php/ofigennaya-novost-s-dlinnym-zagolovkom-v-url