If the <Templates> come first, nothing is added to the index-controller. If the <ListSection> comes first, the index-controller will act like the foo is only providing a ListSection. In the foo-controller it tries to do both but cannot handle the <Templates> tag.
For all situations in which <Require> is used under a <ListView>, we should pass both the object holding the templates (__itemTemplate) and the array (which would then need to become an object as well) holding the sections. This way, the required controller can add multiple ListSections (TC-2692) and/or Templates.