Earlier quoted context omitted.
The problem in my domain, games, is the frequent boxing and unboxing of values when using functional iterator interfaces in languages common to the industry, particulalry C#. It just thrashes the heap and forces often too-frequent gc.
I was under the impression that the way C# did generics meant that there was no need to box values. (Unlike Java, which treats all values as objects, even value types.)
Lambdas have some allocations. I like LINQ but it can have some allocation as well.
These are all tiny allocations but in a game you'd like to strive for 0 allocations.