Я бы предположил , что это способ заставить приложения, которые вообще не используют его, работать немного лучше. Вот мои мысли по этому поводу.
x86 ОС (и я представляю другие) должны хранить состояние FPU при переключении контекста. Тем не менее, большинство операционных систем пытаются сохранить / восстановить это состояние только после того, как приложение попытается использовать FPU в первый раз.
В дополнение к этому, в математической библиотеке, вероятно, есть некоторый базовый код, который при загрузке библиотеки переведет FPU в нормальное базовое состояние.
Так что, если вы вообще не будете ссылаться ни на один математический код, ничего этого не произойдет, поэтому ОС вообще не нужно сохранять / восстанавливать состояние FPU, что делает переключение контекста немного более эффективным.
Просто предположение, хотя.
РЕДАКТИРОВАТЬ: в ответ на некоторые комментарии, та же базовая предпосылка по-прежнему применяется к случаям не-FPU (предпосылка заключается в том, что приложения, которые не используют libm, работают немного лучше ).
Например, если есть программный FPU, который был похож на ранние времена C. Тогда разделение libm могло бы предотвратить ненужное связывание большого количества (и медленного, если оно использовалось) кода.
Кроме того, если доступно только статическое связывание, то применяется аналогичный аргумент, который ограничивает размеры исполняемого файла и время компиляции.