Menos sobrecarga (sem envelope SOAP para encerrar todas as chamadas)
Menos duplicação (o HTTP já representa operações como DELETE, PUT, GET, etc., que precisam ser representadas em um envelope SOAP).
Mais padronizado - as operações HTTP são bem compreendidas e operam de forma consistente. Algumas implementações de SOAP podem ficar complicadas.
Mais legível e testável por humanos (mais difícil de testar o SOAP com apenas um navegador).
Não é necessário usar XML (bem, você também não precisa usar SOAP, mas isso dificilmente faz sentido, pois você já está analisando o envelope).
As bibliotecas tornaram o SOAP (mais ou menos) fácil. Mas você está abstraindo muita redundância por baixo, como observei. Sim, em teoria, o SOAP pode repassar outros transportes, para evitar que suba em uma camada fazendo coisas semelhantes, mas, na realidade, quase todo o trabalho SOAP que você fará é sobre HTTP.