>>625
> 関数の戻り値がまた別の関数になってる
> カリー化ともいう

それはカリー化ではない。
カリー化は、引数を取る普通の関数を
特殊な形式の関数に変換すること

foo(a,b,c) という使い方をするfoo関数を
foo2(a)(b)(c) という使い方ができる別の関数に変換すること
>>623は関数を返す関数ってだけなのでカリー化ではない

JavaScriptでカリー化をする必要はないっていうのは理解できるが、
関数を返す関数はときたま使う

ある関数に同じ引数を何度も渡すのであれば、
部分適用を行って何度も渡さないようにできるし、

別のもう少し具体的な例をだすと
[{a: 1, b: 2}, {a: 11, b: 22}, {a: 111, b: 222}] みたいなデータが有って
aの項目でソートするか、bの項目でソートするか、選べるようにしたい時
aでソートする関数、bでソートする関数の2つを作る代わりに、
ソートする項目名を引数にして「ソートする関数」を返す関数
なんてのを作る時に使う