Differences between local symbols emitted into binary by SwiftC/LLVM on Windows & Linux vs. MacOS?

Are you sure that the .lib is a static library? If it is the import library it will only contain the public interfaces that are meant to be usable from an external module. The import descriptor and null import descriptor make me believe that you are looking at an import library.

Secondly, the lookup of a non-public symbol is problematic. The symbol table is not guaranteed to be present, and thus the lookup by name may fail. If a symbol is not public and does not participate in dynamic linking, it may be fully internalised and discarded. If you need to recover the symbol at runtime, it would be advisable to generate a LUT, possibly with a perfect hash under WMO. This applies to both ELFish and COFFish platforms.