I'm no AWS expert, but I think that's the whole point of endpoints, as per the course.
This is a great question. Chris, your answer is a bit off so let me explain.
When you have a VPC you have "isolated resources". This means, if there is no route out of the internal VPC then it cannot communicate with anything that does not belong to a VPC. For example, s3 buckets do not belong to a vpc, only compute resources do. So for your ec2 instance to communicate with an s3 bucket, it would need to have a NAT gateway or public IP address on a subnet that has an internet gateway attached to it. This creates a few issues, #1 managing of those resources and #2 the traffic will route over the internet and public routers which is going to obviously be slower than internal routing.
So if you have EC2 instances and you want it to communicate directly with an s3 bucket without managing those resources or going over the open internet, then you would use an S3 endpoint for the VPC which creates a private LINK to S3 and your VPC.