this is a little closer to the second option, of having a secondary image file embedded as data...
this is, assuming the linker or image format actually supports the "separate section" idea...
dunno about ELF, but PE/COFF would not support this, since it would require breaking some of the internal assumptions of the file format (for example, that the image is continuous from ImageBase to ImageBase+ImageSize, ...).
ELF may have similar restrictions (actually, I think most ELF images are position independent anyways, so one could relocate and adjust the GOT for an image easily enough).
(note that embedding an additional PE/COFF of ELF image would not likely be "that difficult", and the formats are not particularly difficult to work with). a fixed-address PE/COFF image is likely an easy case, since one can copy the contents of the sections and then call into it.
for fixed-address, producing a raw binary image (supported by GNU ld, ...) is also probably a good option, since in this case the resulting image can be copied as a raw chunk of data (no need to relocate or worry about file-format), and jumped into.
can't say so much about other file formats though...