"It does not work on any subdirectory (such as http://www.example.com/about/). If you were to attempt to request this URL through CloudFront, CloudFront would do a S3 GetObject API call against a key that does not exist."
Here's a classic: I had a lambda fed by an even stream hanging off a Dynamo table. The lambda would delete the record after doing a bit of stuff. I didn't realize on my first pass that this would trigger the lambda again... Wasn't a big deal as I noticed the behavior pretty quickly.
It feels like a common pattern to consolidate your logs into a single account for analysis, I wish they made it more straightforward to setup.
One workaround I've heard of is S3 replication. I've not tried it yet but apparently the replica has the 'correct' ownership.