Actually, declaring variables in the innermost block possible can be
*good* for the compiler, as long as there's not an expensive
constructor.  The more local the variable scope, the easier it is to
prove that other code isn't futzing with the variable, and the easier
it is to perform optimizations.