Can someone with a U.S. phone number text to another U.S. phone number for free, using Google Voice, while in a different country?
If you have a data connection and a Google Voice number, you can SMS or call to a US number for free using only your data connection (via the Google Voice web interface, via the Android GV app, or via the Hangouts apps if you've linked them).
Google Voice does not care where in the world you are physically located when you make or receive calls using a data connection.
The billing rates for calls to/from your Google Voice number don't depend on where you're physically located. If you're physically in Japan and have an IP address that's geolocated as in Japan, and you try to call a Japanese number... guess what? You'll be billed at the same rate as if you called that same Japanese number while in the USA. Likewise, you won't be charged for calling USA and Canadian phone numbers called via VoIP, regardless of where you are.
Source: Doing it for years and years. A lot.
See my answer to "Does Google Voice still do free calls in the U.S. and Canada?" for more details.