Potíž je, že XML je snadno formátově validovatelné - má (může) k sobě mít XSD, které umožňuje ověřit, zda je XML validní. JSON nic takového by default nemá (ne, že by validátor nešel napsat, samozřejmě).
Pokud je potřeba opravdu efektivní kódování dat, dají se použít např. Google Protocol Buffers apod., ale tam samozřejmě z principu ustupujeme od lidské čitelnosti. No a v neposlední řadě HTTP2, SPDY a podobné "nástupnické" protokoly jsou už binární, HTTP 1 byl prostě, jak píšete, trochu krok špatným směrem...