すみませんが、素人くさい質問です。
クロージャはなぜ重要なのでしょうか?

この前、知人と部分適用とカリー化について話をしていて、
add x y = x + y という関数があるとして、
add2 = add 2 と書けば簡単に x=2と束縛したクロージャが得られるんだ、と
説明したところ、知人に、
function add2(y) {
  return add(2, y);
}
で良いんじゃない?何でそんな仕組みが必要なの?と言われました。

絶句しましたが、自分は理由を説明できなかったのです。考えてみたら、
Haskellは再代入ができませんから、クロージャが保持している変数を変更す
ることはできない。良くあるような、呼び出すたびに値をインクリメントする
カウンタなどのクロージャは書けないのです。こうしてみると、上のHaskell
のadd2と下のJavaScriptのadd2()の違いは、関数呼び出しが一段余計に行われ
ていることだけのような気がします。

こういう場合、クロージャであることには重要性はないのでしょうか?もし重
要性があるならその理由を、重要性がないなら、どういう場合にクロージャが
重要なのか、さわりだけでもお教えいただけたら幸いです。