How to put bookmarks and cross-references in ODT?

How to put bookmarks and cross-references in ODT?

As far as I see, bookmarks are just <text:bookmark/> tag put at the place bookmarked. So there are nothing special with relatorio about them. They will just kept where they are.
If you define one inside a loop, you may have troubles because each iteration will have a bookmark with the same name. This is similar to Bug 37: xml:id inside loop - Relatorio tracker

They are quite similar but use <text:reference-mark-start/> and <text:reference-ref/>.
As they are also based on name attribute (which should probably be unique), they will have the same problem inside loop.

I didn’t understand how to push <text: bookmark text:name=“my_bookmark_name_001”/> into the content.xml structure, not just as text in odt?

Just use LibreOffice.

Just use LibreOffice – ???
I need to insert bookmarks dynamically from the report generating program

I do not see why you could not just use LibreOffice. Put the bookmark inside the proper directive to display it or not etc.
But as I said the only difficulty is that the name will not be dynamic.