I understand both of those use cases, but they only address one side of the issue. To give you an example, I have reports that I generate from two different Oracle databases, each for a different system. One one of those, the data is always available when the report runs because it’s a real-time data store. For the other one, the tables are not always available at the same time, so I have a While Loop with an If/Then loop that checks the table count, and only proceeds with the report export if the tables are ready.
In this scenario, the reports are zipped, encrypted and FTP’d to their final destination. Unless I place the first report before the Loop container, and place the ZIP activity inside the container the ZIP activity cannot see the first report which does not require a Loop container. This is just a bit asinine.
I even tried setting this up with a Parallel container - placing the While/If/Then loop on one side and the reports that didn’t require it on the other. The ZIP activity could not see any files generated from inside the Parallel container, which makes no sense.
Your examples make perfect sense when the activity is email, but there are other activities that aren’t email that we use as well.