I think you mean **can't** simply alter self.gsobj.

One way to get around that is to keep track of a full affine transformation here, where all 6 components are actually wavelength-dependent functions.  [x', y'] = [ [a, b], [c, d] ] [x, y] + [x0, y0], where a,b,c,d,x0,y0 are functions.  Then all the apply methods are basically matrix multiplication.  This is what we do in the C++ layer normally in SBTransform.cpp, but with the elements all being scalars of course.  

I think it's probably worth making these work here to avoid somebody stumbling over this missing functionality.  

Also, if we are going to do that, we could probably rename the class ChromaticTransform (or ChromaticAffineTransform if you want to be more verbose) and let it model any wavelength-dependent affine transformation.  Useful if we decide that the atmospheric refractive shear is worth including.  Or if we find some other effect that needs a wavelength-dependent rotation or shear.