Aunque depende del tipo de proyecto al que te enfrentes, lo ideal es la opción 2, construir con el framework un API REST y atacarle desde el frontend con angularjs.
¿Por qué? Porque de esta manera te independizas del framework utilizado, y mañana podrías cambiar de framework sin tener que cambiar el front (y al revés también se cumpliría).
Yo he creado webs con los dos tipos de enfoque. En el primero, eran webs sencillas que no necesitaban mucho javascript, y simplemente "reemplacé" jquery por angularjs (lo pongo entre comillas porque en realidad ambos se complementan, y realmente no fue un reemplazo total). En este caso, sigues teniendo varias páginas, cada página es creada por el framework, pero dentro de cada página tienes pequeñas secciones que se actualizan asíncronamente.
El segundo, está claro su uso: si tu aplicación es claramente SPA (Single Page Application, aplicación de una sola "página", lo pongo también entre comillas porque en realidad lo normal es que tengas varias "páginas", o "views" en la terminología angularjs, pero que se carguen dinámicamente como si fuera una aplicación de escritorio). En este caso el framework se encargará de mostrar la "primera" página (de nuevo las comillas, porque esa primera página puede ser una cualquiera dentro de tus rutas, y tu aplicación tiene que estar preparada para ello), servir el marco común a todas las vistas, cargar los javascript, y luego angularjs se encargará de la interactividad y la navegación.