in DOS days there was the limit of memory
so the EXE has it's size limit,
Compiler making big EXE can't fit into memory and can't execute
the was the solution to split the EXE to other modules named .OVL
so only a part of the main EXE are loaded in execution time then
the main modules loads other parts .OVL upon his need... that's All
With Win32 and PE the amont of memory is BIG

so no need for overlay
but every addition to the EXE is interpreted as Overlay what ever it is Binary or Resource