Even then
> You need to download it from the Google Play Store.
Factually incorrect, just go to https://signal.org/android/apk/ (and the apk will then update itself) or build it yourself.
> pushed the update to everyone but no one could inspect the source code.
That was for the server code, which you shouldn't care about from a security standpoint for an E2EE messenger such as Signal. AFAIK that was not the case for the clients.
Regarding your other points, they have reasons that have been discussed elsewhere[0] to avoid federation, notably a lot of the progress on the Signal protocol would be way harder in a federated setting. There's no other messenger that has the same usability ("my grandfather can use it and won't have problems using it afterwards") while being at this level security-wise.