Made a call to BusinessObjects support and found a workable solution.
The short answer: you cannot use a CR formula or function to populate a parameter field in the same report, because Crystal executes the SQL query before it evaluates the report formulas. This makes perfect sense, but my brain was in "Monday" mode...
Anyway, here's the workaround, if anyone is interested:
[1] Create a report that returns a single piece of data from a datasource (I'm using an XML file).
[2] Place the data field in the detail section, and hide it.
[3] Create the formulas needed to generate the values to be passed to the parameter fields.
[4] Insert the "real" report as a subreport in the main report footer.
[5] Use the Subreport Links wizard in the Edit menu to link each formula field in the main report with the matching parameter field in the subreport.
Mark