Kevin McDonald writes about HTTP protocol history, gRPC, Protobuf and networking tools, often building them from scratch in Go.
HN links it for gRPC and HTTP/3 posts; one commenter cites his Protobuf unknown fields post in a technical discussion.
My guess is there's more to that story than just "protobufs don't forward unknown fields" because that's not how they work be default. Take a look at https://protobuf.dev/programming-guides/proto3/#unknowns.
https://kmcd.dev/posts/protobuf-unknown-fields/ discusses the scenario you're hinting at.
It's possible in the story you mention that each of those ~20 internal protos were different messages, and each hop between backends was translating data between nearly identical schemas. In that case, they'd all need to be updated to transport that data. But that's different and the result of those engineers' choice for how to structure their service definitions.