Note For EXEC Writers

Suppose, you call three programs, one after another, from within an exec, and the programs do not commit work. The end of command is after all three programs execute and the exec ends, not after each program ends. In this case, changes are not committed until all three programs successfully run and the exec ends.

The problem is that you cannot always predict how users will use your program. While you may want it to run stand-alone, there is no guarantee that a user would not put it in an exec with other programs, or call it using some other mechanism.