Ah! sorry I misunderstood for DX11 we actually try to find the base level shader model that it works on so we basically compile it for every shader model until it succeeds, we then compile all options that work and include them in the final output. On the runtime end we start at the highest model that worked and if that fails on the hardware present we fall back until we find the highest shader model that works on the available hardware.
In this way we try to get the best shader model that runs the shader on the available hardware at runtime to give the best compatibility.
Russell