Could it be that GLSL is more effective than pure "old-school" ARB ASM shaders?
Hand-coded ASM shaders should be more efficient as you get more direct control over what instructions get executed, and in which order they happen, but you really need to know what you're doing and know what GPUs like and don't like to get the best out of them. Could be that the Cg to ASM converter was doing a bad job, could be that your GLSL compiler is actually really really good.