I've been trying to find the reference, but haven't found it yet. But will post now/update later.
Here is how I think it might work. Exactly how many bits of luma or color depth will be recoverable is going to depend in part on how sophisticated the processing of the original file is. In particular, it will depend on the extent to which dithering is used in the original algorithm.
Using the example of one bit/two bit used earlier: Yes, if all the algorithm does is round each value at each location, then bit depth is lost and is unrecoverable in some instances (though the equivalent of pixel binning gets you some increase in many contexts). So 0.2, 0.4, 0.6, 0.8 becomes 0, 0, 1, 1. But if dithering is used, then there can be more information. What that means is that you randomly vary your values so that they average to be a desired value that is not actually in your bit depth. So 0.7, 0.7, 0.7, 0.7 might be represented as 1, 0, 1, 1. If this is the case, then there are bits to be recovered beyond those is the bit depth.