Is there any facility to extract a particular subset of functions and files from such large libraries?
Yes - that is what the linker does already.
A library is a collection if individual object code files. The linker will link only those object files necessary to actually to resolve references in your code. So long as the library designer made the library sufficiently granular (ideally one public function per object file), then your linked application code will not be related at all to the size of the library, only the sum of the code you have explicitly referenced.
So my advice is to build the code first then see if you actually have a problem - the chances are that you don't. Remember that your application probably already links the standard C library, and that in itself does not make your application the size of the entire library!
The linker will be able to output a MAP file that will detail exactly what object code is linked and the functions and data objects within them. You will be able to determine how efficient the link is - remember though that functions you call are likley to call other functions within the library that you have not explicitly referenced yourself. Your linker may also be able to output a cross-reference table that details such dependencies.