I have several S3 buckets containing a total of 40 TB of data across 761 million objects.  I undertook a project to copy these objects to EBS storage.  To my knowledge, all buckets were created in us-east-1.  I know for certain that all of the EC2 instances used for the export to EBS were within us-east-1.
The problem is that the AWS bill for last month included a pretty hefty charge for inter-regional data transfer.  I'd like to know how this is possible?
The transfer used a pretty simple Python script with Boto to connect to S3 and download the contents of each object.  I suspect that the fact that the bucket names were composed of uppercase letters might have been a contributing factor (I had to specify OrdinaryCallingFormat()), but I don't know this for sure.
The problem ended up being an internal billing error at AWS and was not related to either S3 or Boto.
Boto randomly connecting to different regions for S3 transfers