Let me explain a typical use case a bit further - as I'm having this come up frequently.
We would probably have to create 30-40 wrapper reports to clean this up in our case, which easily introduces errors or issues.
We have many reports relying on temporary tables - when initially called they show initial results, but then we want to drill down further to analyse (making sure we are using the exact same data).
In these cases we call the same report again with an added parameter inAction.
Hiding the inAction would reduce usability issues that are coming from our staff (where they are trying to understand what to put in inAction).
A typical pseudocode report looks like this.
create temp table...
if(inAction = 'showOrders') then
use (also hidden optional parameter 3 and 4 here)
else if (inAction = 'somethingElse' ) then
where inAction is set we usually have simple sql queries.
else -- inAction is null - we show the default overview.
linked reports with inAction parameter are here
usually this part is 80% of the report.
drop temp table