DLL, которые вы загружаете из Microsoft, предназначены для общей архитектуры x86 по той простой причине, что она должна работать на всех множествах машин.
До временного интервала Visual Studio 6.0 (я не знаю, изменился ли он) Microsoft использовала для оптимизации своих библиотек DLL размер, а не скорость. Это связано с тем, что уменьшение общего размера DLL дало более высокий прирост производительности, чем любая другая оптимизация, которую мог сгенерировать компилятор. Это связано с тем, что ускорения от микрооптимизации были бы решительно низкими по сравнению с ускорениями из-за отсутствия ожидания ЦП памяти. Истинное улучшение скорости достигается за счет уменьшения количества операций ввода-вывода или улучшения базового алгоритма.
Только несколько критических циклов, которые работают в основе программы, могут извлечь выгоду из микрооптимизаций просто из-за огромного числа их вызовов. Только около 5-10% вашего кода может попасть в эту категорию. Вы можете быть уверены, что такие критические циклы уже будут оптимизированы в ассемблере разработчиками программного обеспечения Microsoft до некоторого уровня и не оставят слишком много для компилятора поиска. (Я знаю, что он ожидает слишком многого, но я надеюсь, что они делают это)
Как вы можете видеть, были бы только недостатки от увеличенного кода DLL, который включает в себя дополнительные версии кода, настроенные для разных архитектур, когда большая часть этого кода используется редко / никогда не является частью критического кода, который потребляет большую часть ваши циклы процессора.