Disadvantages: you have to roll-your-own port forwarding & compression.
If using default VNC port numbers, this maps remote vnc port 5900 to local port 5900 ssh -L 5900:localhost:5900 remoteusername@rempteiporaddress
so you could then use vncviewer 127.0.0.1:5900
Starting a GUI on a machine where there is not one already started (i.e. the remote equivalent of StartX) http://no-sheds.blogspot.com/2018/03/remotely-starting-x11-desktop-on-linux....
If the GUI is running but not logged in, x11vnc will fail, but will give you an explanation on how to make it work.
Steve