I agree with price that losing the transform method is overkill, despite the RFC. I still think CameraPoint is unnecessary and mostly gets in the way. I re-added transform using the API transform(points, fromSys, toSys) where points can be a single Point2D or a vector of Point2D. This is as a separate commit where relevant, since that helps separate getting rid of the old transform method from adding the new one.
I checked the code price asked about in obs_subaru and found that it would work but was a bit inefficient, so I tweaked it. Unfortunately it has no unit test, so that was a "best effort" change.
Please have another look.
One question is whether I should simplify the code for Detector by using templates for the CameraSys and CameraSysPrefix overloads of the various methods. I did this for Detector.transform in order to avoid a lot of code duplication (since it takes two coordinate system arguments). It is less necessary for the other methods, but it would reduce duplication. However, that will require the code to always call makeCameraSys on the system argument. I am pretty sure the compiler will optimize that call away for the CameraSys version because makeCameraSys is an inline function. It is not an expensive call in any case. jbosch or krzys may wish to weigh in on this.