I suspect we all agree: the CLS remote exposure compensation algorithms running in various Nikon camera bodies and speedlights will remain unknown, until somebody with a logic analyzer and reverse assembler reverse engineers them.
I may be wrong, but I'm guessing that the on-camera master system does not know how many speedlights exist in eeach remote group. If they did, this implies that each remote unit in a given group identifies itself during the preflash sequence. It also implies that each unit in a remote group would be aware of the others, so that their responses would be timed to avoid conflicts.
Perhaps each remote unit in a given group fires at full power during the preflash sequence. The on-camera system could recognize the total of N remote units and derive the number in each group. This falls apart when one considers that a remote group could consist of one SB900, one SB800, one SB600, one SB-R200, etc. In order to sort this out, the on-camera system would have to know what each unit in a remote group is, as well as how many in the group. Getting sticky.
Assuming the on-camera system does not know how many units are in each group, how does it determine the power level to send to each unit within the group? Assume the on-camera system decides that a given group should fire at X power level. For one remote unit in the group, this would mean "Fire at power level X." For two remote units, this would mean "Each of you fire at X/2 power level." Etc.
Have you given any thought to looking at the pulses returned by the speedlights in the remote groups during the preflash sequence? A second channel on your scope plugged into the PC port on a remote SB900/800, so you could see the timing relationships between the remotes and the on-camera master system?
Might be interesting.
HBB in Phoenix, Arizona Nikonian Team Member
Go here for a list of membership upgrade benefits.
Photography is a journey with no conceivable destination.