Endpoints in Virtual Machines are only used with external access - that is, either from somewhere outside of Windows Azure, or from another cloud service where you're connecting via the public ip address / dns name.
For virtual machines within a single deployment, you can access whatever ports you want. This is limited only by your virtual machine's firewall / iptable settings. Note: This differs from web/worker cloud services, where you must define internal endpoints for inter-role communication.
You can also connect two virtual machine deployments with a Virtual Network. You'll then have the same full port access between machines, limited only by firewall rules.
One more thing to note: with external endpoints, you can limit these to specific ip ranges allowed / blocked, providing additional security. See Michael Washam's post about this. Currently this feature is only available via PowerShell.