I think I found an example in hlsl-struct-semantics.shader_test of what you're talking about regarding manually filled vertex buffers. I couldn't make it work for purposes of this semantic, because I don't fully understand how it works. I did try to specify 3 vertices, and use draw triangle strip 3. With SV_IsFrontFace I was going to switch between returned target colors. Flipping vertices order did not make any difference in shader output. I'm sure I screwed up something.
Changing the vertex order doesn't change anything at all?
I do realize now that the shader runners all have default (i.e. back face) culling, so it won't render anything at all if the triangle is back-facing. We can probably just disable culling unconditionally.
That doesn't explain why you're getting the same face by changing the order, though.