This tone curve thing is giving me an headache...
I've attached two images to demonstrate. Both are using the same profile. The first with linear curve, and the other a typical S-curve, Adobe's default. The curve brighten the picture a lot so I have reduced the exposure of the second to make it easier to compare.
The first has rather accurate colors when I compare the calibrated screen with the real thing, as expected. The second has not only increased saturation quite far, but also pushed the reds into some other hue. I know one reason, the curve is applied in Prophoto space (as DNG pipeline does), pushing green to 0 in sRGB. Adobe Lightroom (used here) has applied some sort of gamut mapping though so it's not as bad as it could be. I've tried to apply the curve in sRGB space instead when using RawTherapee, better result. Even without space clipping there are saturation increases and hue shifts though.
In theory the tone curve could been seen as just a compensator for the Hunt and Stevens effects (eg the dimmer screen needs more contrast and saturation to perceptually match a brighter real scene), but it's generally going way over the top. I'd like it not to be the profile's job to deal with side effects of the tone curves, but anyone that's going to use default Adobe curves with DCamProf profiles are going to think that the profiles suck, and indeed they kind of do.
Currently I'm currently out of ideas how to deal with this. For myself using RawTherapee I can apply contrast using a CIECAM02 lightness curve and have good realistic results, but that's not what the general user will be doing, so I guess I need to come up with something. I'm not totally out of ideas, but there are only the painful ones left...
There are a zillion of tone curve models out there in the research world, which all are better than a simple RGB curve (ICC profiles) or Adobe's RGB curve twist (DNG profiles), but DCamProf can just make the profile, not affect which tone curve that's being used, and current color pipelines are locked to simplistic RGB curves.