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