Please note that block names should be unique within the template even if the template is built from multiple files. Therefore it is usually a bad idea to include one file in two different places, unless this file contains no blocks.
This is the way to include a file from within a template, no additional code is required in your script. Note that this creates no blocks except ones already present in main and included files.
addBlockfile() creates a new block in place of a variable placeholder.
{addblockfile}replaceBlockfile() replaces the existing block with a new content.
You can keep the parsed contents of the original block and continue iteration over the new one.
Or you can discard the parsed contents and start from scratch (this is the default behaviour).