So, there are two things happening. The first one is you’re not clamping the dot product, so you’re getting negative lighting on the back side of the sphere. If you notice your example without the fallback goes completely black on the back side of the sphere, where as the built in lambert has some ambient lighting.
This line:
should be:
half NdotL = saturate(dot(s.Normal, lightDir));
That will actually fix both issues, but there’s an explanation for why you were getting the odd smudges with the fallback when you don’t without. Shadows. Those weird smudges are from the sphere self-shadowing. Usually any face not pointed at the light isn’t getting affected by the light that’s being shadowed, but in this case because you had some negative lighting, the shadow was becoming visible. The fallback includes the shadow caster shader pass.
Thank you, I really appreciate your help! I was learning about shading/lighting, and this is the code in the example but they had non-erroneous results in their version! Those kind of things get me stuck as I ask myself why I get different results. Thanks