В распространяемый пакет DirectX SDK входит вся история библиотек D3DX. При установке самой последней версии распространяемого DirectX ваша система должна иметь все версии этих библиотек. Приложения могут и разрешают устанавливать только те файлы, которые им нужны, удаляя cab-файлы из структуры каталогов распространяемого пакета, чтобы уменьшить размер распространяемых компонентов, и таким образом вы можете получить 43 dll но не 37, например.
Если вы удалите зависимость dll D3DX и D3DCOMPILER из своего приложения, вы можете убедиться, что приложение будет работать, поскольку dll ядра d3d9 d3d10 и d3d11 не зависят от версии и также связаны с выпусками пакетов обновления для Windows (то есть D3D11 для Vista например, из Vista SP2 или Win7).
Другой возможный способ удалить зависимость и позволить запуску приложения - сделать dll модулем отложенной загрузки, чтобы он загружался только при необходимости (например, при компиляции шейдеров в среде разработки). Если вы уверены, что шейдеры существуют на компьютерах конечных пользователей должным образом, вам не нужно будет компилировать шейдеры и не произойдет сбой. Вызов LoadLibrary и вызов функций вручную был бы более безопасным вариантом с лучшим сообщением об ошибке по вашему выбору, но это намного больше работы.