На мой взгляд, сырых циклов, то есть не for each циклов, в пользовательском коде быть не должно. Если алгоритм нельзя выразить комбинацией стандартных (map, filter, join, etc), то его надо обобщить, запихать в библиотеку и, опционально, написать статью в журнал. Тогда им смогут воспользоваться твои коллеги, которые скажут тебе спасибо.