RMAN "crosscheck" command marks the backup pieces 'AVAILABLE' or 'EXPIRED' depending on whether the backup pieces exist as recorded in the catalog or controlfile. For better usability, I suggest adding an option to the "crosscheck" command called for instance "dryrun" or "noupdate", to avoid making these status changes. This can be used in the following scenarios.
Suppose you're testing media management layer parameters and then run "crosscheck". Due to a small error in setting the parameters, some backup pieces are marked "EXPIRED" but in fact they do exist.
You think MML was set up correctly on all nodes of a RAC database. A backup was run on node A earlier. Now for various reasons, you run the RMAN job on node B, including "crosscheck". But it turned out that MML was not set up for a cluster but for individual hosts of this cluster database. "Crosscheck" run on node B marked the backup pieces "EXPIRED".
You could of course correct any underlying problem and crosscheck again, or even use the "change" command to manually change their status to available. But it would be nice to have the option for a dry-run, as many Linux/UNIX commands do. I expect the new option is a low-hanging fruit (takes very little effort to implement) so it can be put somewhere in the middle of a priority list in spite of its low criticality.