I think it's worth noting that you can also use can.Components to setup new scopes, and create relationships between your scopes to further separate concerns. This sort approach works well when you start dealing with a lot of state logic - you could simply loop through your Models.List, and pass the instance into a component that creates a new scope with some ui state attributes and whatnot.
In your case, using this approach, you could borrow from the canjs panel example to have a parent component which tracks child scopes, and simply loop through your child scopes to select as appropriate.
Part of the reason why I prefer this approach, is it allows you to create a lot of generic components that just come together in a clean, decoupled manor - things like tabs, panels, visual editors, uploaders, etc all come to mind.