я НИКОГДА не пишу таких больших блоков кода
вынеси циклы в отдельные процдуры и объяви переменные как надо
Я привык разбивать код не по размеру (большой - разбей), а из принципов повторного использования (если цикл используется лишь однажды, так зачем его в функцию выносить?) и логического разделения функциональности (если атомарная задача для данного контекста выполняется при помощи двух циклов, то нафига ее разбивать еще на подпрограммы, которые не будут иметь никакого смысла отдельно друг от друга и от вызывающей подпрограммы?).
Я возможно оригинал, но мне проще читать именно первый вариант.
Ну это пример не совсем удачный. Во-первых, в секции объявления всего 3 строки, а бывает и по 10, и больше. И среди них большая часть - временные переменные, счетчика циклов и т.п.
Особенно разрастается секция объявления переменных при использовании WinAPI - там сплошные буферы, переменные-контейнеры для возврата значения, переменные для хранения параметров, которые реально нужны только для одной функции - для другой нужны уже другие. Соответственно, приходится либо использовать те же переменные повторно, либо объявлять все по новой - тогда имена будут читаемые, а не tmp1, tmp2 и т.п., но и количество переменных в var возрастет.