My phone uses a sim card from a verizon MVNO. I don't even know the phone number.
"My" phone number was provisioned, and has always lived, in Twilio.
I set up a simple call forward and SMS forward to my SIM number. When I land in a foreign country, I get a new sim card and just point the forwards to the new number. Easy.
I wrote a shell script that allows me to SMS from the command line from my phone number. So I can SMS people from an airplane even though my handset is off. If I lost my handset I could still SMS you.
It's also nice to have a proper date/time stamped SMS log that lives in /var/mail/sms ... I use this a lot.
My favorite thing about all of this is that I have finally removed voicemail from my life. Hint: you need to tell your carrier, with star-71, to forward to a "black hole" number at the end of your call sequence, otherwise verizon will jump in and say "the wireless blah blah voicemail box that is not set up blah blah ...". So my twilio number rings for X seconds (whatever I set the timeout to) but then the call progresses to verizon, but verizon has been instructed with star-71 command to forward calls to a second number I set up in twilio that does nothing but hang up. That's my "black hole" number and you can insert that into the end of a lot of workflows like this.
Calling has to be done with a voip app on your phone because, of course, you cannot call from your twilio number directly from your phone. Well, you could, if perhaps you called yourself and then set up some logic where you type in the phone number you really want and then twilio forwards you there, but I think it's easier to use a nice VOIP app ... I use groundwire, but whatever works.
I might try to formalize all of this and present it at Signal next year ... there are a lot of other neat things you can do ....