In some cases, yes. But not in all kind of programs. For example, my Farbfeld Utilities programs, are different how much buffers is needed:
* Some deal with only one pixel at a time, or sometimes two. No dynamic allocation is needed.
* Some deal with one scanline at a time, or sometimes more than one (but a fixed number) at a time. The same buffer can be used for each scanline.
* Some deal with the entire picture (such as those that distort the picture).
But one possibility can be that a program might load multiple pictures and each picture needing the entire picture at once, but does not use them simultaneously, in which case it is sense to free each picture after it is used.
(Or maybe I somehow misunderstood your message or something else.)