What would those shortcomings be? I think that networked software systems should be forward-compatible, so that new features can be introduced without breaking every existing client. Some programmers assert the only way to innovate is by having everyone run the latest version of their software and excluding competing implementations. You can see this phenomenon not only with Signal, but also, for example, with systemd.