I was thinking about something like this, but more along the lines of a "soft reserved area". If we assume that there are classes of memory that can always be discarded then an area can be reserved for contiguous memory allocation, but it will also allow memory to be allocated for pages that can definitely be safely discarded. When a contiguous memory allocation is required, then there is a block of memory available that can be freed quickly at low cost.
The difficulty for me, as someone unfamiliar with the kernel, is whether sufficient such pages would be available and identifiable? I wondered about I/O buffers, but clearly if the file is writeable then the pages could not always be discarded. If the kernel "knows" whether a file has been opened read only or read/write, that might simplify the question. Also there is a risk of a performance hit from having to dump a large number of buffers.
I'm guessing that such a scheme has already been considered by people that know more than I do about the issues and has been deemed impractical?