sampler1D, sampler2D, sampler3D, samplerCube, sampler2DRect, sampler1DShadow, sampler2DShadow, ...sampler2DRect and sampler2D seem pretty darn similar to me. The only difference is the texture coordinates you feed them from the API so I wouldn't be surprised to see the "variant compiling" there.
OpenGL hitherto contains *no* single sampler type that uses the exact same semantic yet only introduces the type to distinguish between an opaque internal conversion process. All types represent semantic concepts transparently and as such will not prompt variant compiling because "variants" would not make sense in their context.
NOTE: This electronic mail message may contain confidential and privileged information from HI Corporation. If you are not the intended recipient, any disclosure, photocopying, distribution or use of the contents of the received information is prohibited. If you have received this e-mail in error, please notify the sender immediately and permanently delete this message and all related copies.