Ignoring the whole preserve mode (that is also in rgb levels ) , but a levels adjustment is basic substraction, addition and multiplication .
The ‘gamma adjustment’ by moving the middle point is a power operation. Stuff that can be done on ‘infinity data’ just fine. Negative values are maybe a bit of an issue.
See it like this, if you take the 100% point and drag it to 50%, you are multiplying everything by 0.5 (as in, dividing by two). If you encounter a value that is 350% for example , you can do the same adjustment just fine and it becomes 175%. So far , it works fine on scene data , and you are even still linear.
Exposure is also nothing more besides multiplying.
Now, if you drag the mid point without modifying 0% and 100%. Let’s say you are dragging 18% to 50% without changing black and white. That is a pow() operator , which makes it a sort of curve. So you loose linearity. But that pow() operator is also perfectly fine on a value like 350% without clipping it.
There is no sharp knee here. (I use this all the time in inverting and finishing up my own negative scans , which i do in floating point on a whole roll at the same time to not clip anything).
A ‘floating point’ levels adjustment isn’t that different to an exposure adjustment with some extras. But not something to be scared of.
Still unorthodox, and I keep saying that to make it clear that i don’t go recommending this :). But it’s also not as wrong as putting a display-referred module before filmic .
If it prevents people from having to go through all modules again and again because if a late-workflow exposure change … sure! If it works for you, it works for you !
I haven’t needed it. But I also don’t mask that much. Take from that what you will.