Right now we have the RegisterArrayData() and the ArrayData struct, which encodes information about array parameters. This approach requires us to enumerate every possible COM interface that we are providing and adding the relevant metadata. It would be nice if we could have a solution that would "just work" without needing to mess with that stuff. One possibility is to read the Oicf bytecode from the proxy/stub and use that as the canonical source for this information. That's a non-trivial amount of work, however.
setting it as P3: it's something worth to explore, but no activity for a year. Aaron, please feel free to bump the priority if that's a bottleneck for us.