It’s technically possible, just really, really hard. One example of a successful migration was the transition from calckey.social to firefish.social. It was a massive, extremely difficult undertaking, though.
A big problem involves how user identities are tied to instances. If there were a way to decouple that, I think a lot of the pain goes away.