flash memory is contigoous (?).
Different parts are used for different purposes.
Thats why you flash the parts at different offsets. To make flashing easier you can combine the parts to
one file filling the gaps with some bytes maybe 0x00 or 0xff. I think its 0xff but didn't checked.
I guess esptool.py can generate a single file for you but didn't checked.
Cal