In Teiid, we improved the push down functionality over the MMX capabilities. we also improved buffering capabilities. However, it all depends upon how you are federating, how you wrote the transformations and the user queries. If you are having issue with specific case please provide us a example, along with the generated query plan, then we can analyze and tell you if we support the feature or any improvements you can make to the query.
When use aggregate functions, note that the source systems must also support similar functions to pushdown. Is schema in all your sources sam? so that you can use multi-source vdb? with multi-source vdb Teiid supports pesudo source identifier column.
In the scenario you're describing, do you have a base view layer with views that have a union all of the 5 sources? If that is the case, then putting criteria on the repository id should get pushed through and cause non-matching union branches to be removed even if you are using aggregation. If criteria is not provided, then aggregation operations may need to pull back all of the results.
Can you provide an example of a user query that is not behaving as expected?
Also, compared to MMMX, Teiid has support in general for pushing aggregate opertions through unions. Teiid 7.3 is also adding support for the notion of partitioned unions, so that the optimizer will be able to perform partition wise joins and aggregation.