Because it needs to account for the wcs of the image.  Most Noise methods have `applyTo(image)` just call `applyToView` which is a C++-layer function.  However, CorrelatedNoise doesn't have such a function (being a pure python function), so it does everything in the `applyTo` method directly.  This `applyToView` method is really just to make sure someone doesn't call the function via the base class.  I think the error from the CallBack not finding applyToView would be confusing.  So this just produces a more sensible error message.

That said, I don't think I did anything fancy with the wcs yet in the CorrelatedNoise class.  I have checks that the wcs is uniform, but I don't think I probably do the right thing when the pixels are parallelograms.  I was going to open a new issue after this one to ask you to get that working.  :)