Why does functional map() operation not permit operating on two elements of a list at a time?
Conceptually, 1-argument map should be able to work on unordered collections, because each application of a mapping function doesn't know anything about the element's index.

Your proposed version does know something about the elements' indices, so treats its argument as an ordered sequence of elements. That's the difference.

For regular lists, we can recover the indices by zipping the list with the (infinite, unbounded) sequence [1..]. So, the ability to zip assumes the sequence is ordered - not in values, but positionally. 

Mathematicians can have some specific terminology for this, but I think that's the gist of it.

Such sequences you can always split into a special so-called head i.e. "first" element, and the rest of them, deterministically. But e.g. for truly non-deterministic sequences this is not possible, yet mapping is still a well-defined operation.