Well, there's one of the big problems; param ordering isn't ideal. Believe me, you are preaching to the choir. I had a long argument with the people who maintain our JS library about the merits of adding reverse and curry function so that I could write something like the following:
pluck = curry(reverse(object.get));
var names = people.map(pluck('name'));
...but they weren't having it. :-) As much as I like writing Haskell (and believe me, I do) JS can't do it without heavy library support. You may be better off writing LiveScript or Fey at that point.