I'm thinking that this code was originally written to allow an assembly program to use the interface too (meaning it's probably quite old). Assembly modules carry no implied dependencies, so the linker does not automatically bind to any external modules.