Nosso sistema não controlava só o servidor socket. Ele também interoperava com dispositivos em portas seriais, conexões USB e com dispositivos de entrada diferentes, como leitores de dados. Orquestrava as coisas através de scripts e permitia que o próprio cliente extendesse funcionalidade com suas próprias bibliotecas. Era uma espécie de Rich Client para execução de testes telefônicos.
Mas concordo com você, Leonardo, numa coisa. A parte de modelar uma interface gráfica da web é mais interessante mesmo. Eu gostaria de ter algo como css para o Swing.
Isso não é necessariamente uma tecnologia web, embora tenha surgido nos browsers, mas sim, a arquitetura da API gráfica, que essencialmente roda no cliente, mesmo no caso da web. Uma aplicação desktop poderia trabalhar dessa forma (de fato, o dicionário Aurélio Eletrônico que temos aqui, é uma aplicação desktop que usa o componente gráfico do browser para renderizar suas telas), e nem por isso deixaria de ser desktop.
Seria muito interessante ter uma API que permitisse o layout num css, mas tratasse eventos como cliques em links ou botões da forma que o desktop já faz hoje. E tivesse nos componentes renderizados a flexibilidade que temos hoje para formatos e coisas do tipo. Algumas APIs novas, como o JavaFX, já implementam alguns conceitos desse tipo, embora ainda timidamente.
Vamos aí para uma pergunta mais fundamental: O que diferencia uma aplicação desktop de uma aplicação web? Não é o fato de usar TCP/IP e ser cliente/servidor. Se for assim, boa parte das aplicações desktop hoje já é web, afinal, o próprio MySQL roda sobre TCP/IP. Nem o fato de ser distribuída, ou aplicações usando RMI seriam aplicações web. Nem mesmo fato de usar o navegador, se fosse assim, uma página estática seria uma aplicação web.
O que me parece fazer mais sentido seria o fato da aplicação web ser projetada para rodar numa rede de baixo tempo de resposta. E daí toda a idéia por trás do servidor que faz post-back e response, sem conexão. Agora, essa realidade de tempos de resposta absurdos também está mudando para a internet. E daí, a necessidade de cada vez mais interatividade no cliente e de existirem websockets, que já trabalhem com um modelo duplex, orientado a conexão.
O que eu quero dizer com isso? Que no futuro, não vejo muita diferença entre uma aplicação desktop e uma aplicação web. Me parece claro que ambas convergem para a mesma coisa, e é até mesmo difícil dizer qual delas prevalecerá. A medida que os scripts de cliente ganham mais poder, e mais capacidades interativas, surgem para eles mais bibliotecas com necessidades do desktop. Ao mesmo tempo, os tempos de resposta tendem a ser cada vez menores, e a largura de banda cada vez maior, o que aproxima a internet de uma rede interna.
Eu acredito que conceitos de ambos serão incorporados dos dois lados, e os mundos se fundirão. A forma de fazer aplicações de hoje irá mudar um pouco, e provavelmente o novo modelo irá gradualmente substituir tanto as atuais aplicações web, quanto as desktop.