Fiquei com a impressão de que a tela inteira é encaminhada, não importa o que esteja acontecendo. O encaminhamento X11 deve ser independente de aplicativo.
Não, na verdade é o contrário. O motivo pelo qual o encaminhamento do X11 é chamado de "encaminhamento do X11" é porque ele transporta as mensagens reais do protocolo X usadas pelos aplicativos para renderizar suas janelas no "servidor X" (normalmente Xorg). Essas mensagens são comandos para criar / mover janelas, desenhar primitivas gráficas e de texto (linhas / retângulos), desenhar bitmaps etc.
Você poderia dizer que é conceitualmente o oposto de protocolos de "imagem em tela cheia", como VNC / RFB. Eu acho que é um pouco comparável ao RDP do Windows, que também foi feito para transportar comandos de desenho GDI.
Portanto, os motivos pelos quais você vê diferenças entre os programas são:
Para citar a postagem que você referenciou, originalmente a maioria dos programas baseados em X funcionavam da seguinte maneira:
Basicamente, o X11 não envia a tela para o seu computador, mas envia as instruções de exibição para que o servidor X no seu computador local possa recriar a tela no seu sistema local.
Portanto, quando um programa queria mostrar um botão, ele enviava apenas alguns comandos curtos - "desenhe um retângulo", "desenhe texto" e talvez algumas linhas para torná-lo 3D.
Com o tempo, isso mudou, os programas começaram a renderizar sozinhos e muitas dessas instruções se tornaram apenas "aqui está um bitmap que eu já renderizei, coloque isso na tela" - muito rápido localmente, mas muito lento na rede devido à falta do X11 compressão de imagem.
Isso significa que os programas criados com kits de ferramentas modernos são muito mais lentos em relação ao X11 em rede, mesmo que seja algo tão básico quanto as fontes com antialias.
(Por outro lado, o RDP se adaptou ao longo do tempo e inclui várias formas de compactação de imagem, como JPEG e até H.264; você pode observar os artefatos de compactação enquanto a imagem completa está sendo carregada.)
Felizmente, a maioria dos kits de ferramentas de interface do usuário, como o GTK, implementa o rastreamento de danos, para que apenas regiões atualizadas sejam reenviadas. No entanto, alguns programas (como várias versões do Firefox / Thunderbird) não suportam isso e solicitam uma nova renderização completa de toda a janela, mesmo que ela não tenha sido realmente atualizada.
Essa é outra diferença entre os programas - os de bom comportamento ainda são bastante utilizáveis na rede, mas os de buggy podem saturar um link de 100 Mbps, sem absolutamente nada útil.