difference between foo() { auto bar = []{}; } и foo() { static auto bar = []{}; }
если это желание оптимизировать, то не нужно - код operator() самой лямбды сгенерируется компилятором один раз в любом случае, а объект не будет создан (оптимизирован) в случае, если он не требуется - никакой экономии static'ом не добьёшься