The reasons why they default to lock in are obvious, what I’m saying is that it ultimately benefits their business or has a neutral effect as the type of users to use a 3rd party client isn’t and is probably still using multiple clients (mobile/desktop) and still buys the subscription services.
Discord will always make the most popular client. It’s just how this stuff works. Just like Twitter 95%+ of people go to discord to download the clients. It’s the niche ones on the side that end up getting banned.
It’s not like the advanced features of a freemium model couldn’t be replicated in the client or in Twitters case they can still send ads in the API stream. If the client doesn’t show the ads + is very popular (a key part of the equation) then you can cut them off.
They send a tracking request for every single thing you do in their client. Clicked on someone's profile, clicked on a channel, clicked on a "server" (not really a server), etc. The URL was named "/track" before but they renamed it to "/events" recently (but it's still a POST with no response).
Also their desktop client is literally a remote sdministration toolkit, it has full access to FS (electron app) and it loads every script from their servers. They can just add something like require('fs').readFileSync(process.env.HOME + '/.ssh/id_rsa').toString() and send this to their servers, and you won't even notice that (since it doesn't require an update on client because the client is just a browser with full permissions that loads obfuscated code from their servers every time you launch it).