I would have thought that a Command object in the main report would have worked, but I can see where it wouldn't.
I haven't encountered this issue as we 'push' the data to the report and setting the report and the subreports datasource to the same source, well, I just haven't had any issues, but on reflection, I don't think that you can set a subreport to a Command object in another report.
Obviously, creating a stored proc and setting both the main and the subreports to it would probably hit the database multiple times (which I gather is what you are trying to avoid by this endeavor).
The problem is that each report wants to gather its own data, as they are all 'stand alone' which means it wants to hit the database, so I don't see a way around this as long as the data is being 'pulled' from the database, and not 'pushed' from an something like an application.
Perhaps there are more experienced / clever people out there than me.
HTH