Ondra: lambda funkcí ale nevyřešíš for cyklus, kterej má závislý kroky. Respektive vyřešíš pomocí proměných z closure, ale to už nepřehledné je (ty stavové proměnné definuješ někde jinde, než je používáš).
Jinak myslím, že by to šlo udělat i makrem (definovat iterátor pomocí něco::iterator_type). Ale pokud se todle používá dnes a denně, tak považuji za přínos, když se pro to udělá jednotná norma a syntaktickej cukr, než aby to každej řešil plus mínus stejně, ale jinak.