Потому что функции создаются только тогда, когда они входят в область видимости.Если бы функция была определена в другой функции, она будет создаваться каждый раз, когда вызывается внешняя функция.Если сделать его глобальным, то он будет создан только один раз.
Будет ли это оказывать заметное влияние на производительность, зависит от фактического выполнения программы.Если вообще такая оптимизация полезна, например, если clamp
должен быть определен внутри другой функции, и эта функция многократно вызывается большое количество раз в цикле.