Thank you for your response and explanation. Not sure I've got clear everything you wrote, looks like I have to get deeper into OpenXML spec and how docx4j works
My scenario, I'm trying to implement, is following: there is a number of docx templates that may have content controls. Template with content control has an empty custom XML that is required to properly setup data binding manually in Content Control Toolkit. Later it is filled programmatically with actual data (this part works OK). Also each template may include others via altChunk in a tree manner.
For now I use special content control (with path to template to include in a tag attribute) which later is replaced with altChunk by modifying JAXB tree. Before merging I save the document onto a disk to avoid any possible side effects (though, haven't found any).
I'm aware that there is a od:component element that makes this work easier, but for now I stay with standard schema. I expect that probably each template will have its own custom xml, exactly as in the case with two invoices you wrote about. Just want to ensure that doubling will not occure if included document has no custom XML for data binding, as far as there could be a number of them this can lead to excessive information placed into the final document.