Don't get into the trap of thinking you need VPN or VNC. That wasn't the point of my post.
They are two distinctly different elements in your network.
What I was intending was that you should never, ever consider public VNC access to the server. Ever.
If you implement a VPN then that gives your remote system a secured channel to your LAN, and then it's OK to use VNC - as long as the VNC connection is established over the VPN link. Now you're using the VPN to provide a level of authentication that VNC lacks.
In general the rule you should follow is that any service that you want the general public to access (such as a public web server, your SMTP server (so you can accept incoming mail) should be setup with port forwarding rules in your router/firewall. Any other service should be restricted to the LAN, with a VPN to provide remote access for the users that need it.
If you follow this premise it's clear that you don't want the general public poking around your VNC server, therefore it should not be exposed (e.g. via port forwarding), and you leave it up to the VPN to enable such access.