in my opinion, this is just a symptom of a underdeveloped and fragmented library ecosystem, which is a common problem that afflicts many other languages besides Swift and not necessarily proof of the failure of nominal typing.
you can trace that back through multiple layers of root causes. the ecosystem is fragmented because Swift tooling tends to push people towards shipping very large library modules, which incentivizes the creation of parallel definitions for common currency types like IPv4Address, to avoid adding 10 MB of binary size. and the tooling only pushes people towards giant modules because of performance pitfalls that come with module optimization barriers and lack of developer confidence/education around performance annotations. and so on.
but we shouldn’t take that as evidence that nominal typing itself is fundamentally flawed. these libraries need to be refactored into smaller definitions-only modules, and they need to be given the correct performance annotations to make them as fast as the single-module layouts.