*apologetic necrobump*
I might have managed to fix/minimize this issue. Basically what I did is replace the eye vector calculation responsible for anisotropic reflections with a half-vector calculation. This greatly minimizes backlighting/shine at wrong angles, though I don't know why it should.
// Specular
#ifdef FLAG_NORMAL_MAP
mat3 tan_mat = mat3(tbnMatrix[2], tbnMatrix[1], tbnMatrix[0]);
mat3 bin_mat = mat3(tbnMatrix[2], tbnMatrix[0], tbnMatrix[1]);
vec3 tan = normalize(tan_mat * normal);
vec3 bin = normalize(bin_mat * normal);
float _AlphaX = 0.3;
float _AlphaY = 0.1;
float dotHN = clamp(dot(normal, half_vec), 0.0, 1.0);
//float dotVN = clamp(dot(normal, eyeDir), 0.0001, 1.0);
//Above is a hack, to get rid of weird backlighting
float dotVN = clamp(dot(normal, half_vec), 0.0, 1.0);
float dotHTAlphaX = dot(half_vec, tan) / _AlphaX;
float dotHBAlphaY = dot(half_vec, bin) / _AlphaY;
lightSpecular += dotVN * exp((-2.0 * ((dotHTAlphaX * dotHTAlphaX) + (dotHBAlphaY * dotHBAlphaY))) / (1.0 + dotVN)) * (gl_FrontLightProduct[i].specular * attenuation) * specularIntensity;
lightSpecular += ((gl_FrontLightProduct[i].specular * pow(dotHN, gl_FrontMaterial.shininess)) * attenuation) * specularIntensity;
#else
float NdotHV = clamp(dot(normal, half_vec), 0.0, 1.0);
lightSpecular += ((gl_FrontLightProduct[i].specular * pow(NdotHV, gl_FrontMaterial.shininess)) * attenuation) * specularIntensity;
#endif
}