Thanks, I checked that initially in my testing, picking something else, then going back to US, with no luck. But since then after restarting the phone a couple times, it's correctly formatting as 1 (123) 456-7890.
It seems force quitting and restarting the Messages app started to map the numbers correctly.
I think what's happening is that Verizon (and perhaps Sprint) doesn't send the +1 international code in their caller ID information, while GSM carriers send the fully international qualified number. Because I switched from AT&T to Verizon, I'll probably have to leave the +1 out of Verizon phone numbers, and keep +1 on GSM numbers.
But that's a real inconvenience, and hope I can just leave +1 on all the numbers and let the iPhone suppress it as needed so it matches.
It does appear that phone number formatting is local to the device. Since the iPhone will format US phone numbers as "1 (123) 456-7890", I've set the formatting in the Mac Address Book, connected to iCloud, as "1 123 456-7890".