I would be willing to believe that this is a non-issue in many cases -- that the eval in question is USUALLY a simple pass-through TupleValueExpression. I don't know if this is guaranteed -- that would only require that all general expression of columns (functions, math ops, etc.) are always calculated EITHER later in the plan -- likely in a sort or projection node -- OR earlier in the plan (in a projection node, possibly inlined). Maybe that's true. If so, the evals may be a waste of cpu time in the current product. There's something to be said for the elegance of isolating the evaluation of fancy SELECT expressions to the work of projection nodes.
I'm just having a little trouble convincing myself that this is what the planner currently IS AND SHOULD BE doing. I'm in the process of simplifying some of this planner code, so I should know more soon.