This is actually covered by the collections reform RFC, although there are some problems with this approach, e.g. something equivalent to the direct desugaring stops #8372 from ever working.
As a side note, you may be interested in the recent detailed write-up on iterators, ranges and containers by Eric Niebler, summarizing the work done by the C++ ranges study group (link). It’s not very C++ specific and have a lot of intersection points with current work on stabilization of containers and iterators in Rust.