Does the EXPOSE instruction expose ports on the host?

Docker uses this information to interconnect containers using links and to determine which ports to expose to the host when using the -P flag.

Is this still true with the latest versions of Docker? Linking is now marked as deprecated (except possibly(?) for Docker Compose linking).

What happens if you don’t explicitly EXPOSE a port? Is it just basically used for documenting which port the service is listening on for somebody reading the Dockerfile?