Nein.
Linken auf Funktionsebene ist kein übliches Verhalten von
C/C++-Compilern. Diese (genauer: deren Linker) linken auf Modulebene,
wobei ein Modul ein übersetztes C- bzw. C++-Sourcefile ist.
Der Linker linkt alle Module, die zum Projekt gehören (sprich: im
Makefile aufgelistet sind), ohne darauf zu achten, ob der Code
verwendet wird oder nicht.
Nur bei Verwendung einer Library sieht das anders aus; aus der Library
werden nur die Module extrahiert, die auch tatsächlich benötigt
werden.
Also musst Du jede -potentiell- entbehrliche Funktion in ein eigenes
Sourcemodul packen und alle diese Sourcemodule zu einer Library
übersetzen, die Du dann zu Deinem Projekt linkst.