In my CoreData Application, I've an outline view on left of main window, acting as source list (like iTunes); on the right I display a proper view, based on outline selection. Each view has its components, such as table view, connected to array controller, owned by the specific view. Very often different views display same data, for example, a table view of the same entity.
From a performance point of view, is better to have a single array controller per entity and share it between all views or does CoreData cache avoid memory waste?