I've said it before and I'll say it again, defederation should be removed from the protocol. (And replaced with a default ban list that can be overriden by the user).
Each instance should basically just be a set of default settings that are used to access the same shared pool of content.
This removes the new user hurdle, because they can now join any instance and not be worried that they are making some important, permanent decision. If they find that they don't like something about the instance, they can tweak their settings later.
Also, some of the other solutions to this issue carry significant risks. Pushing users towards a 'default' instance increases centralization. Apps that are preconfigured to use a specific instance are even worse (since people wont want to change instance if it means giving up a familiar app). Without some degree of vigilance decentralized services tend to centralize over time. This gives too much power over the entire fediverse to a handful of instance admins. If an instance with 60% of all users starts defederating all smaller instances, most users will just migrate to the larger instance.
This isn't just some theoretical that I pulled out of my ass, its an easily abusable weakness of federated services. It has been abused in the past, and there is no reason to believe it wont be abused again.
Google used it to kill XMPP.
Facebook will almost certainly use it to kill mastodon, once they siphon enough users and content to build a critical mass.
Microsoft is so notorious for using this strategy that they has their own internal phrase for it:
Embrace, Extend, Extinguish.
https://en.m.wikipedia.org/wiki/Embrace,_extend,_and_extinguish