The single-argument case is elegant, and the multiple-argument case is awful.
var newScore = add(7, validateScore( double(person.score) ))
becomes
var newScore = person.score
|> double
|> score => add(7, score)
|> validateScore
This is very Forth-like. Operands get pushed on the stack, and operators take from the stack and push results back. In Forth, there's no operator precedence and no parentheses; it's pure reverse Polish.
Why not go all the way to pure RPN?
7 person score . double ValidateScore add newScore =
See how it simplifies the syntax? Of course, you have to know how many arguments each function takes.
Do we really want to go down this route? It's all syntax; it doesn't add any capability. As an extension to an existing language, it's likely to produce a mess.
Mixing functional and imperative notations is a problem. LISP is all nested parentheses, and that bothered a lot of people. Forth eliminates all the parentheses, which bothered different people. Python was pure imperative, ("lambda" went in over major objections) and is gradually getting more functional features, but they don't fit the syntax well.