Your expectations are reasonable: that ARIA would look at all of its current service instances and try to match reqs-and-caps with substitutions.
However, we are a bit far from implementing this. Currently, ARIA only knows how to match reqs-and-caps within the service. Also, this feature has to be planned rather carefully: in some cases the user will not want such automatic matching to happen with services that just happen to exist in ARIA's db. I think this a great place to introduce a new Policy that would allow the user to configure exactly how matching would happen: should the matching prefer external substitutions over internal nodes? are there limited to how many could be matched? (like the "occurrences" definition in Capability) should matching only happen with services of a certain csar/template? etc. We are planning some work ahead to refactor the way we instantiate services, and I think at least some parts of this feature should be included in that.
