mantenho apis e alguém antes de mim adicionou protobuf (porque era "mais rápido"). A única coisa mais rápida é o RTT devido à menor carga útil e isso pode ser corrigido com o JSON compactado com gzip.
A parte que me parece desagradável é o trabalho relativo para manter o protobuf (comparado ao JSON). Eu uso java, então usamos o mapeamento de objetos Jackson para JSON. Adicionar a uma resposta significa adicionar um campo a um POJO. Mas, para o protobuf, tenho que modificar o arquivo .proto e, em seguida, atualizar a lógica de serialização e desserialização que move os dados para dentro / fora dos buffers de protocolo e para os POJOs. Aconteceu mais de uma vez que ocorreu um lançamento em que alguém adicionou um campo e esqueceu de inserir o código de serialização ou desserialização para os buffers de protocolo.
Agora que os clientes implementaram os buffers de protocolo, é quase impossível se afastar.
Você provavelmente pode adivinhar, meu conselho é não fazê-lo.