I think sometimes people forget that Swift is still a relatively new (late 2014, ~7 years old) language. Given its scope and sizable feature set, it's no surprise there are many kinks to work through. Fortunately the team has been cruising and it gets more solid every year.
Right now it's a de facto for iOS and there's a nascent but passionate server community, give it a few more years and I think it'll be a much more attractive for things outside of iOS.
I would like for this to be the case, but I'm not so confident. Even a few years ago, you had corporate investment in the form of Kitura and S4TF. Now you have a few small open source projects.
The language itself is ready, but the tooling is just not there. I think the main obstacle is the lack of investment in cross-platform support by the core team. Until I can `apt-get install swift` I don't have much confidence it can gain adoption outside of the Apple ecosystem.
Of course, in our industry, whether anything can continue the current path for another 3 or 4 years is a big unknown itself.
I know Swift is all about “as static is possible”, but maybe some explicit “dynamic” notation when you want to use Self-using protocols as a type could work.
To dissuade people from using existentials by default, the ongoing discussion focuses on requiring 'any' keyword in an existential type declaration.