We will try to demonstrate here why there is no more then 3 stops headroom in highlights between the exposure suggested by the spot-meter and the clipping point of the raw data. We presume the camera follows the current ISO standards; the sensor is single-structure (not like those Fuji S5 cameras have); the capture is obtained in 1 shot; and that the raw data is linear.
This demonstration can be easily done with some rather simple and well-known formulas, but for this article we will use a shortcut - Photoshop will be our main tool. In many situations it is more handy then to create spreadsheets or use calculators. We can't display 12- or 14-bit data in Photoshop, so for the purpose of the demonstration the data will be in 0..255 range, not in 0..4095 or 0..16379 like in real raw files. For our purposes the range of 0..255 will serve quite as well. To get it to 12 bit, one can
multiply RGB results by 8; or by 32 to see results in 14-bit range.
First of all you will need to download and install linear colour profile (see attachment to the article, below) - as we are going to use linear space on the first stage of our demonstration. Or you can just follow the text and illustrations here. Starting Photoshop, we open a new image in 16-bit RGB mode and assign it the linear colour profile we installed.
Next, we open the Color Picker palette and using HSB fields we set H=0; S=0; B=18. B (Brightness) is the brightness of reflecting surface, and we just set it to 18% (Zone V as suggested by Adams) which happens to be middle grey. You can see L in Lab readout becomes 50, so now we are sure we really set it to the middle. R, G, and B all are at 46.
Because our image is in linear space, we can add a stop of "exposure" by just multiplying RGB readouts by the factor of 2, thus setting them all to 92. Here is the screen shot of the result. We see that B is now 36%, which is perfectly predictable - with the increase of exposure by 1 stop the brightness should be also increased 2 times. L is 67 now.
Let's add another stop, this time increasing B from 36 to 72. We see RGB readings also increasing 2 times reaching 184 now - the linear scale still works perfectly well. L is 88.
Now we do not have room to add another stop - RGB=184*2>255, that is overflow. Maximum we can do is 255/184~=1.4 times. This is very close to the value of half a stop increase in exposure, SQRT(2). What we see now is that starting from 18% grey we were able to increase the exposure 2 full stops and a half. It means that if the spotmeter is calibrated to 18% grey, our headroom in the highlights is very slightly less then 2.5 stops (2.47 stops to be more precise).
Current ISO standard, however, recommends that the metering calibration point is less then 18% by half a stop to increase the room in the highlights. The standard suggests 18%/SQRT(12)=12.73%. Adding the slack the standard allows the total headroom is somewhat less then 3 stops, 2.97 eV.
Another interesting question is: what are the target values of RGB in your favorite RGB working space? Let's create a new RGB file, now setting its colour space to AdobeRGB (1998) profile. We can't manipulate B values in an easy manner any more because the space is non-linear; nor can we set RGB without accounting for the gamma of the colour space. But we can take L values from the previous and see how they translate into RGB. Setting L=50, which, as we discovered, corresponds to middle grey, we see RGB readouts become 118. This is the target value for the 18% grey in gamma=2.2 colour space. A stop above 18% is L=67, and RGB values for L=67 are 162. One more stop, L=88 - and RGB are 220.
It makes sense to look at RGB values in the case we start from 12.73% into B field, 12.73% being the suggested calibration point of the meter. Photoshop will not allow us to enter 12.73, so with a little rounding let's start with 13% and increase the B value 2 times to get consecutive L values corresponding to 1 stop more exposure for each step. (If we would be interested in half-stops, the factor is SQRT(2)~=1.41 instead of 2.) Once again, into linear space to get L values.
B=13 -> L=43
B=26 -> L=58
B=52 -> L=77
and we can't do full stop now, brightness is limited to 100%, but we are very close...
B=100 -> L=100
Now let's switch to full Adobe RGB (1998), which is gamma=2.2 space, and enter L values to get RGB.
L=43 -> RGB=101
L=58 -> RGB=138
L=77 -> RGB=189
L=100 -> RGB=255 (I have not checked this, sorry).
So, in the perfect world of a spot-meter calibrated to ISO standard and pure gamma = 2.2 transform of perfectly linear data coming from the sensor, the neutral surface should render 101 RGB if exposed according to the spot-meter; next stop is 138 RGB, then comes 189 RGB, and finally we are getting clipping increasing exposure full 3 stops instead of 2.97 stops which are the theoretical limit as it was shown above.