Используете. Как вставки. Проблема в том, что оптимизировать внешний ассемблер можно только на этапе линковки, с межмодульной оптимизацией (lto). И в случае если этот внешний модуль будет часто дергаться, то компилятор не сможет провести ряд оптимизаций, т.к. нет доступа к тому, что оптимизировать и заинлайнить/выкинуть.
P.S. а если пометить функцию как pure(const), и в случае более одного вызова оной с одинаковыми аргументами, компилятор может схлопнуть остальные вызовы и подставить результат, если функция чистаю. Это позволило процентов на 5-12 срезать косты в одной цифродробилке.
И таких крутилок много. Асм многие из них предоставить не может :(