¿Existe una razón por la cual los algoritmos estándar toman a Lambdas por valor? [duplicar]

Esta pregunta ya tiene una respuesta aquí:

¿Por qué los predicados de algoritmos de operación de secuencia se pasan por copia? 3 respuestas

Entonces hice una pregunta aquí:Lambda funciona en Visual Studio más reciente, pero no funciona en otros lugares a lo que obtuve la respuesta, que mi código fue una implementación definida ya que el estándar 25.1 [algoritmos.general] 10 del estándar dice:

A menos que se especifique lo contrario, los algoritmos que toman objetos de función como argumentos pueden copiar esos objetos de función libremente. Los programadores para quienes la identidad del objeto es importante deben considerar el uso de una clase contenedora que apunte a un objeto de implementación no copiado comoreference_wrapper<T>

¿Me gustaría una razón por la que esto está sucediendo? Se nos dice que toda nuestra vida tome objetos por referencia, ¿por qué entonces la función estándar toma objetos por valor, y aún peor en mi pregunta vinculada, hacer copias de esos objetos? ¿Hay alguna ventaja que no entiendo de hacerlo de esta manera?

Respuestas a la pregunta(2)

Su respuesta a la pregunta