Collection.map doesn't call `makeIterator()`

The implementation of Collection.map can be found here: swift/Collection.swift at main · apple/swift · GitHub

It uses repeated subscripts, rather than `makeIterator()`. Isn’t this a problem? I overloaded `makeIterator` on a custom collection once (I think it was a binary tree) because an iterator would be able to iterate the collection more efficiently than subscripts would (both O(n), but with a lower constant factor). If `makeIterator` isn’t overloaded, then subscripts are used anyways (by `IndexingIterator`). Wouldn’t it make more sense to use an iterator in Collection.map instead, in order to benefit from a possibly more efficient iterator than the default one?