Илья, может быть Вы окажите нам честь, и расшифруете, что означает на данном форумеУМЕНИЕ ПРОГРАММИРОВАТЬ.
В моем понимании это довольно слабо связано с умением "правильно писать циклы" ((хотя морально уже готов услышать, вообще - чего угодно))

Ибо передо мной лежит код (на Обероне), в нем неоднократно встречаются линейные поиски, и у меня нет проблем с их пониманием. А вот, несмотря на "филигранно поставленную технику" - цель програмного продукта достигается кривовато как-то...

Да, проблема, справедливо Вами отмеченная - ЕСТЬ. Но она от того, что людей не научили Думать, а вовсе не "шаблону линейного поиска".

В моем понимании, если у кого-то очень хорошо поставлена "техника укладки кирпичей", то это вовсе не означает, что он уже Строитель. Т.е. сможет построить Дом (надежный, имеется в виду). Как отметил выше, противоположный пример - у меня перед глазами.
А в Вашем


Попутно отмечу: ДА, в инженерную культуру входит в качестве цели - прежде всего для человека, с целью дальнейшего развития разработки.
Это ключевая позиция. И если некто правильно понимает эту свою цель, то он напишет "цикл" таким образом, чтобы он был понятен коллегам. С помошью шаблона, или с помощью иных средств - это уже его творческий выбор.
Но никогда не изготавливалась документация, чтобы ее понимал "любой дурак". Нетривиальные идеи имеют право (и всегда имели) на нешаблонное изложение. Имели на релюхах, на аналоговых микросхемах, на цифровой рассыпухе, на гибридах микроконтроллера с аналоговыми микросхемами и мультиплексорами... И сейчас имеют, именно такова инженерная культура.
Да было бы Вам известно. ((btw: на вышеперечисленное мной - могу привести конкретные примеры из своей инженерной практики))
И профессиональная обязанность Инженера - понимать эти нетривиальности. Если он (Инженер) это понимает, тогда "правильное написание цикла" - мелкая деталь, не достойная того времени, которое затрачено на этом форуме.