Hey Tom,
Nice job finding that! Yes, that was what was causing my problem, too.
After a little investigation, it looks like that 0-byte object is a "directory" object. One way it comes into existence is if you use the AWS S3 web interface to first create the directory (as you might do before uploading files into the directory).
If you create an object directly by doing something like:
... then one of those "directory" objects is not generated.
Aside from your solution, an easy way to delete a single one of those 0-byte directory objects is simply to delete that "directory" object (in this case, "foo"):
... and the "contained" files remain intact.
With all that said, other clients don't seem to have much trouble with "directories" containing these "directory" objects, so Lucee should be able to handle the situation as well, so I'll file a ticket. (Though now that I know what we're dealing with, I finally understand why s3cmd throws a warning about an empty object during some operations.)
Thanks,
Jamie