I don' t know that an external implementation would necessarily be easier but it could be more efficient if well written. Either internal or external, you will need to decide how you want to rank or order the entities before concatenation. The ordering will need to be absolute (i.e. no ties). The policies to "set" the first entity's output string and the policy to concatenate a string to produce this entity's output string = the "prior" entity + ", " + this entity's attribute are fairly straightforward.
I guess the short answer is: There isn't necessarily a more efficient way to do this in OPM and I don't think there are constraints nor should a more efficient solution be required unless you already know you will be working with very large numbers of entities and/or very long strings.
Thanks Matt - that's very helpful. I hadn't thought of the idea of "chaining" the output strings for each instance (almost like recursion), but that makes things more elegant.