Well... in most respects, I think you've got it. However, in my mind, a cross-post is merely an activity that references the original object. So there's no forwarding of comments to the primary community, the post belongs to the primary community, it also just happens to also belong to the secondary community.
There's no backreference for it, though, which I don't really like. It'd be better if a cross-post was approved and then the object itself updated a crossposts collection or something. I was toying with the idea of maybe using Offer to signify that action, but I wasn't too invested in making it happen.