Teamviewer is proprietary and requires an expensive license to use in a commercial environment.
VNC is almost ALWAYS paired with some form of transport layer encryption in the real world. IIRC the inbuilt security in tightvnc (lets be specific there are several vnc implementations so talking about "VNC" security is murky") is just TLS/SSL - which makes it no less or more secure than your on-line banking.
Team-viewer is also completely useless in a headless environment where there is no X server present - it is also statically compiled blob, and plain doesn't run on any arch other than x86 arch.
As for SPICE - it is an abstraction layer which effectively provides for arbitary resources to be exported over a network. It is the basis of KVM hypervisors inbuilt remote desktop functionality, and is promising up and coming technology that simply miles ahead of image caching approaches/redraw methods, VNC/RDP etc use.
Think of SPICE as what RDP promised to be but failed to deliver.