Se você se sentir confortável e produtivo no WCF, pode não haver uma forte razão para usar qualquer outra coisa. Certamente, acho que o WCF é um bom ponto de partida, porque se você seguir seu padrão de contrato, é um padrão fácil de converter para trabalhar com outros sistemas, caso seja necessário.
Para um dos meus próprios projetos, comecei com um protótipo do WCF. Quando entrei na "última milha", descobri que na maioria das vezes eu estava lutando com o WCF para fazer as coisas. Eu estava particularmente tendo problemas com a correspondência de jogos na pilha ponto a ponto do WCF, o que não me dava as ferramentas necessárias. Nesse projeto, acabei mudando para a biblioteca de rede do XNA, que me deu o matchmaking do tipo Xbox (e GamerTags e outros enfeites) que eu estava procurando e (mal) tentando emular no WCF. (Obviamente, a biblioteca de rede do XNA supõe que você esteja trabalhando em um jogo XNA e, infelizmente, ainda não suporta a publicação do jogo no Windows sem um contrato do GfW Live.)
Não toquei muito no meu código de rede no switch do WCF para o XNA Net, porque os contratos em si (as classes de interface) não mudaram muito (exceto a eliminação dos atributos do WCF). Escrever aulas de Reader / Writer que implementaram ou consumiram meus contratos foi bastante direto. Provavelmente, eu poderia ter mantido o suporte para ambos com um pouco de #if WINDOWS
confusão, mas decidi simplesmente abandonar o suporte ao WCF naquele momento, porque simplificava as coisas naquele projeto. Talvez seja interessante, ao iniciar outros projetos diretamente com a XNA Networking, ainda estou usando algo do padrão de "contrato" de interface / proxy do WCF. Eu pretendo escrever um post sobre esse assunto, na verdade, porque acho que é um bom padrão a seguir.