I had always assumed that crossfire worked like SLI until I was yelled at by the mod for the ATI forums for "spreading the rumor that crossfire downclocks the card when it actually runs asynchronously."
When I asked for a document to explain exactly how it works I got some "trade secret" mumbo jumbo.
At any rate, it is easy enough to show on your own.
Here is a link to the 8.1 driver news from fudzilla. Mixed crossfire was added for the first time with these drivers.
http://www.fudzilla.com/index.php?option=com_content&task=view&id=5641&Itemid=1
You can see on the first page them demonstrating clocking the cards independantly.
Google 4850+4870 crossfire, and 3850+3870 (the first combo to support mixed crossfire) for some reviews on the performance. The performance is almost identical to crossfire of the slowest cards. Hardware canucks has a thorough look.
If you have crossfire yourself, you can show youself that they don't underclock really easily, just use overdrive to clock them differently and observe the GPUz report of them both. The clocks will not change from what is user specified, and they can be changed independant of each other.
I have asked here several times for a ati white paper on the subject but none seem to exist at all. But it is easy enough to show that the cards are not changing thier clock rate. Thus I do not know if the drivers simply feed a different amount of informatino to each card proportional to its speed (not likely as this would improve performance) or if the drivers task each card with half of the work, add it in the buffer, and the fastr card simply waits for the slower to finish before the frame is displayed (How i believe it works).
I'd like to get mroe info on this but the topic always seems to provide dead silence.