Много всего. Результаты - быстрее всего закешированный FSharpFunc, тут понятное дело почему - нет нового объекта + нет индирекции вызовов. Далее идут просто вызовы функций с компиляторными оптимизациями, такоую же скорость имеют вызовы функций, получающих кешированный делегат. А вот когда компилятор уже не может понять как оптимизировать функцию и ссылается к каррированию, видимо начинается ужас.