O problema é provavelmente o próprio protocolo X. É muito conversável e, embora a quantidade bruta de dados seja bastante pequena, ela causa muitas idas e voltas que se tornam um problema em conexões WAN.
Sua construção inicia um xserver remoto ao qual o aplicativo que você deseja usar está se conectando. Então, do ponto de vista da aplicação, o xserver é local e os atrasos de ida e volta são pequenos. Do ponto de vista da arquitetura, as janelas vnc são muito simples, portanto, sua janela do vncviewer precisa de muito menos bate-papo e viagens de ida e volta para funcionar corretamente, em comparação com aplicativos "reais".
Além disso, até mesmo as implementações vnc clássicas visam especificamente esse problema de RTD reduzindo proativamente o bate-papo requerido, o que também resulta em chat reduzido entre a janela do vncviewer e seu xserver local.