1) I agree with pushing the data to the report...it's how all of my reports work.
2) since I always use a stored proc, I don't know if CR is smart enough to use a where first, or gets all the records and filters from there...hence my using the stored proc...I know what sql server is going to do.
3) the only reason I am leary of the cascading stored procs, is that when I learned CR, it was in version 7, and I basically taught myself, and one of the 'rules' that I created for myself is that CR only calls out to the database once per report.
I could be completely wrong on this, and if it works for you, by all means use it. I don't have any recent experience with the parameters page as we use an application that we have written a wizard to step the user through the creation of parameters...then we get the dataset (perhaps manipulate it) and then send it on to the report.
Pushing the data, as you know, just makes it easier on the programmers as we never have to worry about DSN and other methods to make sure that CR can talk to the database.
I do a lot of SQL programming, so between the stored proc and the pushing of the data, CR / any reporting tool isn't so bad.
I will always advocate for a stored proc for main report. Both for ease of testing/maintenance and for the shear versatility that a stored proc offers that a command doesn't (temp tables come to mind)
This is a belief of mine (since no one has ever agreed or disagreed) as to the 'original' design idea behind command objects, in that they are to gather data for parameters lists, not to gather the data for the main report....
Many people though use Commands to get the data for the report as they aren't allowed to write procs against the database. With that said, using parameters in commands can lead to CR double prompting the user for the parameter, once for the command and once for the report...or so seems to be what has been reported on this forum.
Hopefully that gives an idea of how I think CR works under the hood / the experiences that I have had.