Hi,
Disclaimer - even more tired than I was before, may talk nonsense :-).
M_L, I don't think your shader has quite the same effect as mine. For example if you get places where the values are 0.5 my shader will output 0.5 and yours will output 0.25. With my donut setup you will get the same effect, because one or both of the shaders will be outputting either 1 or 0, but if differing areas overlapped you would have a different result. No big deal, depends on what you're looking for really, but there are differences.
Messing with this stuff makes me think we need a function node which takes a vector as input and then works out its distance to the current render position. I don't think cameras need to be part of the equation, and they're a bit of a nuisance to deal with really. In the example of your lens cloud, rather than having to create cameras wherever you wanted to place a cloud seems like overkill. This would be a handy place where it be handy to use a Null object to position the cloud in the 3D Preview, and then have the position of the Null used as the input to a non-camera-related distance shader. You could make a distance shader with function nodes, but it would a useful thing to have already made.
Regards,
Jo