The combination of an HTTP/2 stack w/ protocol buffers and libraries in everything you'd write a mobile app in is a powerful combo, and its a pretty high development velocity environment.
Given the limited resources of a lot of Android devices, an extra unmarshalling step would offset any wire-size reductions.
Also, instagram heavily relies on JS. There are not any protobuf parsers in js that perform anywhere near that of native json. The most feature complete implementation is two orders of magnitude slower.
Using the C++ bindings is faster, but is more difficult to fit into a typical build, can't work in a browser, and still an order of magnitude slower.
It's definitely something to keep an eye on, but, IMHO, not quite ready for something large scale.
[1] https://google.github.io/flatbuffers/ [2] https://code.facebook.com/posts/872547912839369/improving-fa...
I definitely agree with you that JSON is easier to work with, but at the scale of Instagram I don't think that would be an issue.