@asamonek Great questions! As a first note, "map" is a higher order function that works basically the same in Clojure, JavaScript, Python, Perl, and many (most?) programming languages.
Importantly, it is NOT to be thought of as returning a subset (that would be the similarly ubiqitous `reduce` function, or in Clojure, variants like `(for)` and `(filter)`). Rather, all map functions across these languages serve to "map" a given function across a plurality of targets (a "collection", in Clojure parlance).
Have you yet encountered the algorithm Map Reduce, made famous by Google's heavy use of it last decade? This feels relevant to your line of inquiry. https://en.wikipedia.org/wiki/MapReduce