Just 5 minutes into trying s3sync I stumbled at exactly this problem and as far as I understand the fix is quite simple.
The only thing you need to do is change your URL scheme
from
http://s3.amazonaws.com/<bucketname>
to http://<bucketname>.s3.amazonaws.com/
and DNS will do the rest... it's transparent, it's easy. As far as I understand.
I would change it myself if I knew ruby and where you construct your URL in the code.
Unfortunately it's not that simple: You could use the changed URL scheme, and it would work for all EU buckets, and for most US buckets. But in US buckets uppercase letters are allowed, and those buckets can not be addressed as virtual hosts... I dont' know if there are other characters that can be used in US buckets which cannot be used in EU buckets. But that will have to be considered.
I'm also not very firm in ruby and don't know how to code it, so i'm looking forward to see when ferrix has had time to look into it.