He is just dividing by linear depth since vspPosReflect is in view space. He could have also done the following:
Code:
float3 vspPosReflect = Input.ViewPos +  vspReflect;
   float4 sspPosReflect = mul(float4(vspPosReflect, 1.0), g_mProj).xyzw;
sspPosReflect.xyz /= sspPosReflect.w;
   float3 sspReflect = sspPosReflect.xyz - Input.ScreenPos;

And since Input.ScreenPos uses non-linear depth in the z-value too they cancel out each other.
I tried something alike (I didn't divide the z value, though...) but ended up with the same problem like you. So the magic seems to hide somewhere else.