Нет и да.
Для простых лямбд это не имеет значения.Это потому, что лямбда является простым сокращением для класса с оператором ().
Соответствующим элементом является то, что класс имеет конструктор.Представьте себе:
std::map<std::string, std::string> m = create();
auto lambda = [m]() { /* code */ };
Делать этот захват в цикле не имеет смысла, так как вы копируете много строк, которые не могут быть изменены.В этом случае также может иметь смысл захват по ссылке.
Мой совет: делайте так же, как и в любом другом классе.Если чепо построить, просто разместите его там, где вы найдете логичным.Если построить дорого, подумайте, почему это так дорого, и подумайте о том, чтобы убрать его, когда это возможно.