JavaScript suffers from inconsistent mutation/return of array values in array functions, too.
PHPs design problems are mostly being swept away; it's the legacy that keeps its reputation down.
Basically, groups of functions are consistent: string,array etc. Their parameter order was usually based on whatever the underlying C API was.
I had to explain to my fellow non-IT students why I was making loud gasps of confusion.
Array reduce has one array as a parameter, as does most of the other functions and they all have the array as the first parameter.
Its only one function, and its an inconsistency for a reason. Lets not blow it all out of proportion.
First the documentation is fine and easily accessible, second your IDE will hint you the correct order and finally in a real world web framework situation you don't even use those functions that much anyway.
My biggest complaint would in fact be the concurrency situation, it's still not easy and relies on external libraries that feel half-hacks. I guess Elixir spoiled me in that regard.