This would introduce another performance consideration though, wouldn't it? You may not be paying the cost for the explicit copy, but now you are paying the cost of allocating space for a Foo on the heap instead of the stack.
It would depend on the situation, but this seems like it might just be wash at the end in terms of performance?