У меня такое ощущение, что ответ - да, и это не ограничивается Haskell. Например, оптимизация хвостового вызова изменяет требования к памяти с O (n) на O (l), не так ли?
Моя точная проблема: в контексте Haskell, что, как ожидается, нужно понимать при оптимизации компилятора при рассуждении о производительности и размере программы?
В Scheme вы можете принять некоторые оптимизации как должное, например, TCO, учитывая, что вы используете интерпретатор / компилятор, который соответствует спецификации.