Respostas:
O Netcat é como socat apenas com os tipos de endereço STDIO, TCP, TCP-LISTEN, UDP e UDP-LISTEN com menos opções para esses tipos de endereço.
Qual é o objetivo da sua pergunta? Quando usar qual? Nesse caso, a resposta é: use o netcat se ele puder resolver seu problema; use socat caso contrário.
Simplificando (muito, muito), o netcat é um telnet que você pode usar em scripts. Plus is pode ser usado como um ouvinte simples, se você quiser. E sim, o socat pode fazer mais coisas que o netcat, mas para verificar se é um superconjunto, você precisa comparar as opções da linha de comando.