Regarding the issue of static libraries, couldn't we just leave them as implementation defined or have a similar status to object files? As far as I know the Standard does mention library components very loosely, in the "Phases of Compilation" section, but that pertains more to linking as in object files/static library components from the standard library that provide functionality the executable binary requires, so we have that for a start.

But this section makes no mention of runtime libraries, or what we'd all call shared libraries here. Perhaps it's time that particular paragraph had a revision to make way for shared libraries?

I'm also not a fan of introducing new keyword's, I'd have gone with export and import (the latter of which can actually help certain platforms perform optimizations; Windows Linkers are able to eliminate trampolines to DLL routines referenced by the program when it knows that particular symbol is from an external library and not inside any of the other object files), but then we have modules already using that syntax...