PaulBags :
So, why can't it do this anyway? If the shaders compute the data why does it matter what dx version? Why does dx or anything else need to see the process under the shaders and understand it to make use of it?
You have it backwards, the shader code itself needs to be in a format that can be compiled by the version of DX (or higher usually) it is targeting, and any functions used by that shader have to be valid for the DX version you target. It's no different than trying to run a DX11 game on an XP machine, it just won't work because it has invalid calls.
If DX can't compile the shader code (shaders are compiled at run time usually), no compute, so DX needs to be able to read the shader code and make sure it's valid (and also compile it, no magical compilation).