I would argue that a community is the content and its users. People don't use a new site/instance unless it's active with content to their quality standards (it's why so many people refuse to use new options that the far-right creates). The only exception is when there are major events like Musk purchasing Twitter to get Mastodon going, or the API changes leading to kbin/lemmy getting more popular. As an example: I'm still using https://reddit.com/r/worldnews because they have the daily update thread on Ukraine, but !worldnews doesn't.
You are very right with the apps, though. Creating a new account is easy, but having to install new apps and set them up is a royal pain. Another pain point is having to learn an entirely new interface, whereas I can spin up my own instance of kbin after using it for a couple of years and feel comfortable with the interface of the new instance, as opposed to going from Twitter to Mastodon which is quite the adjustment.
Look at Reddit: it's gone bad, and yet millions still use the site. So much so, in fact, that content on many subreddits is posted every few minutes, whereas the same communities here on kbin see hours or days between posts. That's what I mean: people are used to the solution they like, so if a community becomes "bad" enough to make me move to a different instance, it might not be bad enough for everyone else, and so I'd be stuck moving to a smaller instance while the majority of users continue using the "bad" instance. Just because I don't need to create a new account doesn't change that fact.
If I don't want to use Reddit, all of the content and users that I benefit from are still over on Reddit. No matter how much I'd like everyone to switch over to kbin, they don't think Reddit is as big of an issue as I do. Clearly. So what am I supposed to do if that happens with [email protected] in a few years? Do I have to put up with a bad site as long as everyone else puts up with it, too? Or do I have to move to a smaller community on a different instance just so I don't have to deal with the problems of the original instance?