IMO it's the best available option if you can choose to use it; the foundations are well researched, it's well designed, it has many good features that alternatives lack (cough sum types) and overall is robust and has a good, fast C++ and Rust implementation. From a technical perspective it's by far the best option both in design and implementation, if you ask me.
The problem, of course, is that technically worse solutions win for various reasons. One of those reasons is language support. Even if Protocol Buffers is worse in many metrics, it has a lot of language bindings and tools available.
I find myself primarily working in the apache arrow domain these days, so I've done more work with the Apache Flight RPC than anything else (https://arrow.apache.org/docs/format/Flight.html). I'll make sure to keep an eye on the capn'n proto project though. Seems well thought out and very interesting.
The problem, of course, is that technically worse solutions win for various reasons. One of those reasons is language support. Even if Protocol Buffers is worse in many metrics, it has a lot of language bindings and tools available.