That's what I was demonstrating: there's undefined behavior ONLY if you use non-shared libraries because the order of units in these libraries is NOT significant.
And in fact makes the use of "pre-linked" even more relevant to this discussion.
Only non-shared libraries are not portable if you have multiple units defining the same symbol.
But you are not required to use them if, instead, you use a linker directly and specify a full list of units names (or shared library names) where the order of resolution is entirely determined.