> Это можно считать как плюсом, так и минусом.это минус. потому что заставляет выполнять руками задачу, с которой отлично справляется компилятор. все переменные из outer scope, которые используются внутри функции, попадают в замыкание. всё. если надо кого-то исключить — «затеняем» его локальной декларацией. но у похапэ… ОПА! нет локальных деклараций.
впрочем, и это обходится элементарным анализом байткода: если переменная из outer scope не используется до первого присваивания ей значения, то захватывать её не надо. костыль, конечно, но в большинстве случаев будет работать и позволит не вводить новый синтаксис.