Для REST будет идеален фреймворк основанный на Symfony/HttpKernel (имплементящий HttpKernelInterface). Это даст вам возможность абстрагироваться от запросов, применять реверс-прокси кешеры а так же возможность модифицировать запросы/ответы по слоям, этим упростив архитектуру. В частности быстро прикрутить CORS, сделать авторизацию на уровень выше и т.д. можно будет за счет http middlewares и в частности
stackphp. Есть JMSSeializer (который можно будет заменить на свой сериализатор, если будет стоять вопрос о производительности), который позволит вам декларативно описать правила сериализации/десереализации ресурсов и вынести все это дело на слой выше, абстрагируясь таким образом от всего этого в коде вашего приложения. Так же возможность быстро прикрутить версионизацию апишки.
Если у вас кучи связей и вопрос производительности не стоит остро (только поддерживаемость кода) - Doctrine ORM. Если производительность - острый вопрос, стоит смотреть в сторону использования DBAL и оберточек. Если у вас все будет сделано по уму (код напрямую с репозиториями не работает и вообще ничего не знает о Doctrine), то заменить слой работы с базой на что-то пошустрее будет не проблема.
По интернационализации так же проблем особо не должно возникнуть. Есть экстеншены для doctrine, есть symfony/translation и кучи других либ.
Если вам нужна гибкая система аутентификации и авторизации, разграничение прав гибкое и все такое - symfony/security удовлетворит все юз-кейсы и позволит все это покрыть тестами.
Так что из перечисленных вами вариантов - Silex. Но если хочется еще и меньше бойлерплейт кода писать, то Symfony. Учитывая что по времени вы сильно не ограничены, то будет время разобраться как делать все правильно. Вопросы производительности стоит решать по мере возникновения проблем, вообще у REST с этим не так много проблем. Узкие места можно переписать на чем-то другом, например на go, можно оптимизировать persistance-layer, сериализацию (при простых запросах JMSSerializer дает большой оверхэд по времени, так что можно в особых случаях написать свой оптимизированный под определенный response сериализатор) и т.д.
Но в целом вы можете использовать отдельные компоненты в связке с тем же Silex. Вообще все упирается больше в количество бойлерплейт и сервисного кода. В целом если вы будете подходить грамотно к построению архитектуры приложения можно на чем угодно написать нормально. Вопрос только в том что какие-то вещи где-то правильно сделать сложнее.