Since I've only used 8.5, i not speaking with any confidence, but the 'add command' will be pushed to the server(according to the help).
Where I can see you having a performance hit, is when you are taking advantage of the grouping and the SQL that gets generated with server side processing i.e. only summarised values are returned, not the details (assuming that all the criteria for server side processing is met).
Besides using stored proc's which may give you marginal improvement, I'm not aware of any other techniques in Crystal.
It comes down to you balancing the report requirements and performance.
For complex queries, I've remodeled the data in a datamart/datawarehouse which will give you the best of both worlds (if thats possible in your situation). That data is then processed/updated daily.
Cheers
Fred