I already commented about that in the docs, but will post this here again as I think this issue has a greater visibility:
Why isn't server-side rendering a design goal? It would improve performance for (mobile) apps due to a better initial load time and increases compatibility with existing services (say saving a page from an Angular app to Pocket or indexing by search engines). Angulars templates and directives are often misused because of this - many people use data-binding to translate their apps even if these translations are static and not dynamic. The same happens for templates. A lot of these have static components (e.g. some ng-includes in some apps are never changed while running the app - they are just used to inline static HTML which could happen in a pre-compile step or on server side, too). I think some people call this "bind-once", but I think this is only half of the story if "bind-once" doesn't work server-side, too. And... it would be great if two-way data-bindings would be prefilled with the right values on the server-side while pushing the initial app to the browser, so you don't get "content flickering". Some people call this isomorphic JavaScript.
Link to the disscusion in the docs.
I also had a short discussion with @bradlygreen on Google+ about this topic where he stated that the "server side rendering" feature request is mostly about SEO and that this would be a solved topic and that data should be inlined to get a fast initial response:
I don't think SEO is a solved problem. As far as I understand escaped_fragment it only works for SPAs based on Angular, not for Angular code which is embedded in existing (read: legacy) pages.
Not everything can be inlined in the first template, because a lot of people misuse data-binding (e.g. for translation, even if the translated strings aren't changed at runtime and therefor are static). This unnecessarily defers execution of the app. You can - and should - precompile things like that with a different templating engine, but this often conflicts with Angular templates syntax wise and developers need to use and learn an additional templating engine.
It makes it harder to reuse code (e.g. for validation) on the server side, too. Of course I could refactor my validation code to a non-angular-based framework and than reuse it in my controllers, filter, whatever, but I can't use them out of the box and I couldn't reuse i18n filter which are already in Angulars core.
This aside it would would be super handy if I could use directives and precompile them e.g. like a static site generator. I know this is not the focus of Angular, but than I could reuse my Angular code for a lot more projects. Say I have a with an ng-repeat inside. The controller to switch the carousel items is static and will be released for a static site or a SPA alike, but ng-repeat would only be executed if is filled with real time data. If it just filled with a static JSON it could be precompiled and the generated markup is just plain vanilla HTML - or it would check async for new data and is therefor only pre-filled with data to stop "content flickering". Something which is a problem for dynamic SPAs, too.
Thank you.