É interessante que a sua escolha seja decidida com base em requisitos atuais e futuros.
Se escalabilidade é um ponto critico no futuro, talvez voce tenha a necessidade de um dia separar as aplicações em servidores diferentes. É possível que um dia haja muitas instancias de B e tenha a necessidade de escalar A.
Segurança tb pode ser um fator a se considerar para garantir que somente B acesse A.
Muitas vezes utilizei webservices para troca de informações entre aplicações, independente de estarem no mesmo servidor ou em servidores diferentes. A idéia por traz disso é a flexibilidade. Se um dia for necessário re-escrever uma das aplicações em outra linguagem, não seria impactante. Outra questão é a facilidade de monitoramento de carga em cima do webservice.
Pode ainda associar o webservice em uma constraint de segurança e permitir que somente os clientes certos acessem o serviço. Um fator negativo é que muitas vezes as tags do xml transportado ocupam mais espaço que a própria informação. Mas essa questão é amenizada utilizando o recurso de compressão gzip.
Até logo,
Romilson Carvalho