“NoLighting” in the example you linked to isn’t a special setting like nolightmap, it’s saying use the custom lighting function called LightingNoLighting. I’m not really sure what the point of using a surface shader is if you want it unlit though since the purpose of the surface shader is to do all of the expansion to multiple shaders that is required for lit shaders. If your shader is unlit you probably just want to use a straight vertex & fragment shader.
As for your dot product question, yes. -1 and 1 are parallel and 0 is orthogonal. -1 to 1 is only true if the two normals are normalize though. It’s valid to use un-normalized dot products in certain cases in which case the range is unbound (0 will always be orthogonal though).
I feel silly, I should have recognized that. I’ve only started with custom lighting models for educational purposes an hour ago though. It does sound like a good option name though like you said using a surface shader without lighting wouldn’t be intended use.
One other small question I have about the definition of custom lighting models:
I know what attenuation (falloff, degradation) is, I assume atten is a range 0…1? Used as a coefficient.
It’s really important to understand what all the variables are if you’re going to manipulate them. Sorry if that one was somewhere in the docs, I must be missing it.