Applications can request access to the contact list at any time. They don't need to incorporate some sort of "ask for a phone number to send an SMS to" functionality to enable this. Additionally, there's nothing preventing them letting users confirm accounts by e-mail instead of SMS.
The Signal project itself has repeatedly explained why they use phone number identifiers, which are the most controversial feature of the platform. I'm not misunderstanding them.