Но вот как правильно создавать SPA приложения с помощью этих фреймворков
По отдельности. Сервер на symfony, клиент на angular. Это разные части проектов, по сути это два разных приложения. У них нет общих частей, со стороны сервера у вас только REST или JSON RPC API. Клиент даже не знает что сервер на пыхе написан. Далее обычно прописывается конфигурация nginx-а так, что скажем запросы на /api/ идет на симфони, а все остальное перебрасывается на angular.
Вот такие дела.