So let me give some concrete examples of each type of pipeline.
First, the reusable block pipeline (1):
1) I'm creating a new kind of action block as a pipeline because I'm not a developer. It's going to tweet it's "text" input in leetspeak. It's made of two blocks, a leetspeak block and a tweet action. The leetspeak input is connected to the input of the pipeline. The output of the leetspeak block is wired to the tweet action. I name my pipeline "leettweet" and share the URL with others to use a block in their pipelines.
Now, the "singleton" or "outer" pipeline (2):
2a) In this pipeline I want to make an email address that I can email and it will tweet the subject in leetspeak. It uses an email receiver trigger and the leettweet pipeline/block we made before. This pipeline is just for me. It doesn't have any inputs or outputs.
2b) I'm using an IFTTT style editor to make another simple pipeline. It has a cron trigger and an email action. Neither of these blocks are composite blocks. I attach the (made up) "time" output of the cron trigger to the "subject" input of the email action. I set the "to" input of the email action to a single value: my email address. Like the last one it's a "container" pipeline. Also, it's not reusable because it's made just for me.