There are a dozen ways you could organize your data for a CompositeView. But this is how I think about CompositeViews, and it has helped me to decide when is the appropriate time to use CompositeView vs CollectionView.
A CollectionView is for rendering a repeating list of models, each of which has the same representation/template.
A CompositeView is for rendering a repeating list of models as well, but also to render some view/template which wraps the list.
CollectionView:
Consider an unordered list. You could have this element on the page:
<ul id="my-list"></ul>
And render a CollectionView into that node where each item in the collection is rendered as:
<li>One Title of Collection Item</li>
The result would be:
<ul id="my-list">
<li>Title of One Collection Item</li>
<li>Title of Another Collection Item</li>
<li>Title of Last Collection Item</li>
</ul>
Simple, right? The CollectionView renders a series of 'branches' into an existing 'tree' node. The empty tree node is perfectly valid and won't be visible unless there are items in it, anyway. Now let's look at CompositeView.
CompositeView:
Let's say you have a table. If you used CollectionView, you would have to have the empty table with headers, footers, etc. already on the page. This would be the 'tree' node. Then, the collection would be each row of the table. The problem with this is that, if there's any problem rendering the view, then the tree node would still be on the page. Additionally, the tree node must be hard-coded as it's not part of the view.
Now, if you used CompositeView, you would only need some wrapper element to hold your view:
<div id="table_view_wrapper"></div>
Then, your CompositeView itself specifies a template. This is where it differs from a CollectionView:
<table id="my_table">
<thead>
<tr><th>Column 1</th></tr>
<tr><th>Column 2</th></tr>
<tr><th>Column 3</th></tr>
</thead>
<tbody>
</tbody>
</table>
And then each item has an ItemView/template like:
<tr>
<td>Value 1</td>
<td>Value 2</td>
<td>Value 3</td>
</tr>
The final rendered output of the CompositeView includes both the table (the 'tree' node) as well as the rows (the 'branch' nodes). Both of those elements logically belong together, in one view. That is the purpose of the CompositeView. Additionally, because they are part of the same view, the tree view has easy access to the view's data. In my views, I give the CompositeView a Model as well as a Collection. The Model holds scalar values such as the number of pages in the table, etc.
Did I make any sense at all? :-)