No reads from S3 are free. All outgoing traffic from AWS is charged no matter what.
Traffic may be free, but not the operations.
Your example with VPC endpoints does not leave AWS.
Sorry for the confusion you probably thought about outgoing from S3, but I mean outgoing from AWS.
No reads from S3 are free. All outgoing traffic from AWS is charged no matter what.