There is no such thing as a local matrix channel. Just one which is set to not allow off-instance accounts access.
The reason the domain has to be appended to everything in federated systems, is that its the only way to make sure you don’t get name collision when federating. So that when servers talk to each other about stuff, everything has a unique identifier.
You can have dibs on your domain. You cannot have dibs on just random data labels. But if you do random label+domain, you can be sure no-one else on any other server can use that exact same id.
Also I do know.
I’ve attempted the changing of a matrix server’s domain, without a database purge. It was a waste of time, the instance was only a day old anyway, so I just started over in the end.