Esta foi originalmente parte desta questão:
Passando lambda declarado usando a palavra-chave automática por referência não-const como argumento para o tipo de parâmetro std :: function
mas eu decidi fazer um separado.
Em que circunstâncias é melhor / mais idiomático passar um objeto lambda ou outro objeto de função por referência ou valor?