>That first point is the one that I wanted to highlight though. I would expect the various get components / for each component etc functions on the actor to be guaranteed to access all associated components.
That is the intent. Use AddComponents to achieve this. AddInstanceComponents was added in 4.7 and was just introduced to allow the InstanceComponents array to be moved to private. Its original usage was by the SCSEditor.
>Is there a use case for InstanceComponents not being a subset of OwnedComponents?
At edit time, when a tool is just setting up the Actor in a manner that is appropriate for saving.