For me, it seems as though this full implementation is about 24% more instructions than Schlick's method.
Only 24% more? Isn't Schlick Fresnel ks + (1 - ks) * pow(1 - dot(L, H), 5), which would be about 9 instructions? The full fresnel equation would be about 29 instructions.
Also, why is it dot(N, L) in your code? It should be the microfacets normal and not the normal of the macro surface.