The current reporting features are not flexible enough to scale to larger orgs needs.
I think solving these issues will greatly improve the ability to scale this important feature:
1) reports should be able to get inputs to drive the report process.
Static SQL with hard coded values is not reusable.
SQL with variables would be reusable.
However a Java/GSH layer above the "data gathering process" would also provide flexibility to collecting data far beyond what bind variables in an SQL statement would bring.
2) reports should be context aware
Standard context information should be passed into the report process so that additional config and content can be brought into the report. If (for example )the folder/stem object was always exposed to the report formatter, then JEXL expressions could be used to retrieve attribute values from the Attribute Framework to decorate the report.
Column names could be controlled, count limits could be managed, header/footer content could be added, etc...
3) The content/format should not be limited to CSV. Text/html/pdf formatted output can be just as useful.
Having a Java/GSH layer produce the 'report file' would allow for any style of output.