Signature optimization is slightly different to (most) other thunks, in that
it's taking an existing function and turning that into a thunk, rather than
creating a thunk that calls an existing function. These symbols can be public,
etc. and so need to be handled a bit different to other types of thunks.
The ArgumentExplosionTransform is the only fso pass that uses this method. So it
makes sense to completely hide it in that file especially since it is only using
public field on ArgumentDescriptor.