I have developed for foreign companies both with and without a contract. I can see no way either me or those companies would have pursued the agreement legally. Maybe because the companies were in fact startups.
However, I prefer to work under the terms of an agreement, mainly because the employer shows interest in taking the time to formally define his expectations and attitude toward developers.
I'm in a similar position, but have never worked without some kind of contract. Even if it's not binding, it describes what people expect and so gives guidance on what to do. I've never broken a contract and never had one broken.
The one thing that has worried me is being asked, after signing a contract with a company in at "at will" state, to agree to a "gentleman's agreement" to give a month's notice. If that's what they wanted, why didn't they put it in writing?
More usefully, for the OP, if you're a foreign contractor by far the biggest hurdle is trust. For finding a job and for making that job work. Anyone with an established reputation / identity is going to care - likely more than you - that things work out. On the other hand, I guess, people like that also don't have the kind of cost difference you might be hoping for...