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.
I included the instruction cost of calculating f0 with pow((n2-n1) / (n2+n1) , 2.0), and I used N.L because I was testing this with normalized Blinn-Phong, not a microfaceted BRDF.