The openness or otherwise of the code has literally nothing to do with the terms of use of any service being run.
The product _is_ the network. By restricting access to the network, access to the product is also curtailed.
So what's your point? Do you think everyone should have a right to connect to their servers however they like, and the service operator can't exert any control over that?
https://github.com/signalapp/Signal-Android/issues/11101#iss...
Among the official reasons given was staying ahead of spammers. In this instance it was also speculated that the payment function which they were building into the server was to remain secret.
https://github.com/signalapp/Signal-Android/issues/11101#iss...
Signal is not federated, as an explicit design decision.
The source code for the server and the client are both free software.