Por um tempo, houve duas grandes implementações do Emacs: GNU Emacs e XEmacs . O XEmacs normalmente tinha mais recursos, com o GNU Emacs atualizando, mas oferecendo um produto mais polido¹. XEmacs não teve nenhum desenvolvimento sério nos últimos anos; Eu acho que o GNU Emacs 23 alcançou todos os principais recursos do XEmacs 21 (a última versão).
Entre os recursos que o GNU Emacs e o XEmacs fizeram de maneira diferente, estava o emacsclient / gnuclient. Até o GNU Emacs 22, o emacsclient só podia abrir um arquivo em um Emacs existente, onde o gnuclient poderia executar código arbitrário no processo remoto do Emacs. Desde o GNU Emacs 23, o emacsclient e o gnuclient possuem recursos similares.
Os protocolos usados pelo gnuclient / gnuserv e emacsclient / emacsserver são diferentes. Então você precisa escolher um e cumpri-lo. (Deve ser possível rodar tanto o gnuserv quanto o emacsserver em sua instância do Emacs; isso pode requerer alguns pequenos ajustes no Lisp para evitar conflitos de nome).
Eu costumava usar gnuserv / gnuclient sempre que disponível quando o emacsclient não suportava nada além de abrir arquivos, mas desde o Emacs 23 eu uso o servidor embutido com o emacsclient.
Havia diferenças políticas adicionais entre os projetos que não vou abordar aqui.