Вопрос дискуссионный:
Пока, не зная всей картины, видится:
1. Переменная balance используется еще в 5 местах и автор, чтобы не париться, сделал переменную
2. Насколько я понимаю, если переменная объявлена и используется только внутри метода (не пишется в блокчейн), то газ она не тратит. Где 40 газа уходит? При деплое контракта или при вызове?
3. Контракт в тестнете? Там много разного кода деплоят люди разного уровня квалификации...
4. Может, разраб затупил...?) Багу нашли)