I would understand if you said that the abstraction here is "persistent map". But not so much with "persistent hash map".
What exactly makes an array map an implementation of a hash map? I couldn't find any mentions of it anywhere (and the reference does mention array maps explicitly as a separate thing), and the impl doesn't use hashes at all, expectedly so. And conceptually, nothing about an array map makes it related to hash maps except for the fact that both are maps.
Even if I avoid inspecting the results of `(type ...)` called on any such maps, there is still an expectation tied to the words "hash map" - that the `hash` function will be used. One might argue that it's not important at all, and I agree that it's true for almost all cases, but it's definitely confusing when debugging anything related to hashes and maps.
What makes it even more confusing is that, while it feels like pretty much a common knowledge at this point that a map literal with more than 8 items is a hash map, `(hash-map 1 2)` will return a hash map, not an array map.
And there are other distinctions. At the very least, `print-dup` is defined for `PersistentHashMap`, but not for `PersistentArrayMap`, leading to unexpected things like `#=(clojure.lang.PersistentArrayMap/create {})`.