This is correct, but first a few reminders:
- having a sub-stream does not mean a deliver have to be done from that sub-stream to its parent. A deliver can be done from a stream to any other one.
- sideway merges can be dangerous if the two streams are not based upon the same foundation baseline (conflicts will still be there when making the final merge to the parent, as seen in this illustrated answer).
- a deliver creates a timeline linking all present activities together. That means if you only deliver a1, a2 and a3 to B, then decide to deliver a4 only (and not a5) to any other streams (other than B), ClearCase will force you to deliver all activities (a1 to a5), even though they very well be completely un-related in term of files.
That does not happens if you:
- only deliver to the parent
- always deliver all the current activities anyway!
In your case, since both streams have the same starting points, making first a deliver from A to B, before delivering B to parent, is a way to solving any merge conflicts in B (without impacting too soon the parent) before making the final merge.