I think I agree with you, BUT I will say that it's a problem I just don't have with JSON.
I think it's because JSON is inherently smaller, and the spec primarily focuses on basic types that handle data.
With JSON I can write idiomatic code, in any language, and the translation to and from my code is correct. I don't need to abstract away my JSON code for arbitrary reasons, it works.
I'm not sure why that is TBH, I just know that it's a restriction of Protobuf I don't find myself running into with JSON.