Overlaying is an obsolete Memory Management Technique that helps the machine run processes that exceed its physical memory size.
Overlaying is mostly replaced by Paging these days.
Option A is incorrect as loader is to load processes in the Main Memory.
Option B is correct as it allows larger programs, but it requires the programmer to divide the code into independent segments.
Option C is incorrect because "large computers" probably have large physical memories.
Option D is correct as the process of overlaying isn't explicitly visible to the programmer (that's the definition of transparency in computer science. Funny, eh?)
Options B and D both. But one can debate on the "effort" aspect of Option B. Maybe a programmer does it effortlessly? Option D, however, is a fact and hence more appropriate.