Because they're not simply drop-in components. DX methods can change between version numbers, and then the whole program would need to be changed, restructured if a function is called differently, and bugs must be checked for this.
Games that do have the options for multiple DX levels will have entire components rewritten for that DX and either compiled to a different executable, or have the program structured to use the different set of components.
Regardless, to use XInput, LFS would need to target DX9 as a base SDK.