Is function level linking indeed a synonym for removing unused functions? /GL and /OPT:REF are different switches, one could reasonably hope that function level linking does more than that.
[As explained in the documentation for /Gy, function-level linking allows functions to be discardable during the "unused function" pass, if you ask for it via /OPT:REF. It does not alter the actual classical model for linking. The flag name is misleading. It's not "perform function-level linking". It merely enables it by telling the linker where functions begin and end. And it's not so much function-level linking as it is function-level unlinking. -Raymond]