In the stable ABI, the destructor was always defined inline, so all TUs have a weak definition of the symbols, which means that if the strong definition from the dylib is removed, there is still an equivalent weak definition available.
In the unstable ABI, there is still `bad_function_call::what()` as the key function, so there will be a strong definition of the symbols in the dylib and no weak definitions.