One way I thought addressing this issue is to allow creation of ValuePipes only from within the scalding package, and only reductions on groupAll will be ValuePipes.

Another way is somehow to assert the truthfulness of having a single element, but I don't know how it can be efficiently done (unless the pipe carry metadata).