From nothing to result rarely happens in real live. I hardly see someone to start/stop a program per unit task (like piping commands).
With command line tools, the dominant design philosophy is that a program completes one task and exits. The tasks may be large or small, and the same tools are often expected to handle both.