For most of them I use a list_pool_element type in the template pools. It lets you list several structures, which it will then place one after the other in the same space, even if the ones that aren't first don't have jigsaw blocks inside (and in fact, they shouldn't). If all the structures in the list pool element are the same dimensions they'll get rotated the same way, too.
Main thing to note with that is that only the jigsaw blocks in the first element of the list will generate additional pieces, which is why those jigsaw block structures look so busy, and the actual build structures don't have any jigsaw blocks in them
But, you can just do a separate jigsaw block in the first structure that places the build piece inside it; that's what I did for the Jungle Stronghold, so its complexes are made of a variety of rooms.