Re: performance of aggregations as opposed to facets
Aggregations are inherently slower than facets due to the increased flexibility. Aggregations are composable and the fact that you can feed any sub-aggregation with the documents that match a particular bucket makes the life of the JVM a bit harder. Facets can actually almost be considered as specialized aggregations (think of term_stats as an inlined stats aggregation under terms).
That said, the lack of flexibility was also an issue with facets, and for instance the term_stats facet did not have the same optimization as the terms facet did. This is something that is much better with aggregations since running terms or terms/stats actually use the same logic to build buckets per term.
Another thing to consider is that you can do MANY more things with aggregations: think of the top_hits, cardinality, percentiles, children, ... aggregations that did not have any equivalent with facets.