Is 6-pass skybox shader with different geometry per pass a special case?

The default skybox shader (RenderFX/Skybox) takes 6 cube face textures and specifies 6 passes (1 for each cube face). In each pass it renders a different side of the skybox cube.

I thought that each pass of a shader would redraw the exact same geometry per pass. Is rendering unique geometry in each pass a special case for the skybox, or something that can generally be done with any shader and/or mesh?

Empirically, yes.

Test case: I grabbed the default procedural skybox shader and added a number of these “empty” passes to the end of it:

Pass {
	#pragma vertex vert
	#pragma fragment frag
	struct appdata_t { float4 vertex : POSITION; };
	struct v2f { float4 vertex : SV_POSITION; };
	v2f vert(appdata_t v) {v2f o;o.vertex = UnityObjectToClipPos(v.vertex);return o;}
	half4 frag(v2f i) : COLOR { discard; return (float4)0;}

If I add exactly 5 (for a total of 6 passes) the shader stops rendering correctly: it only renders one side of a cube. If I add 1-4 copies, or 6+ copies it continues to work correctly.

Additionally, normally Unity (5.6.0) renders the skybox with a spherical mesh that has 5040 verts (check the frame debugger or look at it under NSight). If I have exactly 6 passes, it switches from rendering that mesh to a 6-vert (2 tri) quad - one quad per side of a cube.