Não é a solução perfeita, pois eu ainda estou procurando por ela e sendo breve ... mas o que você pode fazer é resolver o problema do ponto de vista do DNS em vez de um emacs.
O que quero dizer é adicionar entradas DNS locais, como:
freenode => <ip address of example.com>
whateverrandomserver => <also ip address of example.com>
Isso pode ser feito alterando o arquivo em /etc/hosts
em sistemas baseados em * nix ou em %SystemRoot%\System32\drivers\etc\hosts
em sistemas baseados em Windows. É bastante trivial, pois esses arquivos são essencialmente mapeamentos separados por espaço entre nomes de domínio e endereços IP. Basta adicionar uma nova linha com essas entradas e você sairá.
Então, basicamente, o emacs conecta-se ao que é essencialmente o mesmo servidor usando nomes de domínio diferentes, e você tem diferentes nomes de buffer para diferentes servidores.
Se você já se deparar com uma solução adequada do emacs, compartilhe!