Channels come with significant overhead [1]. While that is fine (or unavoidable) when communicating between goroutines, in single threaded code that iterates some custom container you don't want a channel.
That is why stdlib map and vector have their own range magic, but as library author this isn't available to you. That is the point of the proposal.
[1] https://syslog.ravelin.com/so-just-how-fast-are-channels-any...