There are several other cases where it is more efficient to evaluate the row than to create a builder and assign.
Another example is score3,eclxml, which case code similar to:
datasetResult := IF(a, row1, row2) + IF(b, row3, row4) + IF(c, row5, row6)
Where some of the rows are selections from child datasets. This can generate code which actually clones the rows twice when they could be linked instead.