Esta es una regla de estilo entre muchas, y no es necesariamente la regla más importante de todas las reglas posibles que podrías considerar. Su ejemplo, dado que incluye un int, no es súper convincente, pero ciertamente podría tener un objeto costoso de construir dentro de ese ciclo, y quizás un buen argumento para construir el objeto fuera del ciclo. Sin embargo, eso no lo convierte en un buen argumento en contra de esta regla, ya que primero, hay toneladas de otros lugares que podría aplicar que no implican la construcción de objetos caros en un bucle, y segundo, un buen optimizador (y ha etiquetado C #, para que tenga un buen optimizador) puede izar la inicialización fuera del ciclo.
La verdadera razón de esta regla también es la razón por la que no ves por qué es una regla. La gente solía escribir funciones que tenían cientos, incluso miles de líneas de largo y solía escribirlas en editores de texto sin formato (piense en el Bloc de notas) sin el tipo de soporte que proporciona Visual Studio. En ese entorno, declarar una variable a cientos de líneas de donde se usaba significaba que la persona que leía
if (flag) limit += factor;
no tenía muchas pistas sobre qué bandera, límite y factor eran. Se adoptaron convenciones de nomenclatura como la notación húngara para ayudar con esto, y también reglas como declarar cosas cercanas a donde se usan. Por supuesto, en estos días, todo se trata de refactorizar, y las funciones generalmente duran menos de una página, lo que dificulta la distancia entre el lugar donde se declaran las cosas y donde se usan. Estás operando en un rango de 0-20 y estás discutiendo que tal vez 7 está bien en este caso en particular, mientras que el tipo que hizo la regla habría AMADO tener 7 líneas de distancia y estaba tratando de convencer a alguien de 700. Y en Además de eso, en Visual Studio, puede pasar el mouse sobre cualquier cosa y ver su tipo, si es una variable miembro, etc. Eso significa que la necesidad de ver la línea que lo declara disminuye.
Sigue siendo una regla razonablemente buena, una que en realidad es bastante difícil de romper en estos días, y una que nadie abogó como razón para escribir código lento. Sé sensible, sobre todo.