This issue was raised on: https://stackoverflow.com/questions/32304326/amazon-s3-sync-deleting-excluded-files
Basically, doing aws s3 sync . s3://bucket2 --delete behaves differently to aws s3 sync s3://bucket1 s3://bucket2 --delete even if the two source directories are identical.
It would appear that the logic for --delete behaves differently between Local and S3. An example is well-documented in the stackoverflow issue.