Hello,
For languages other than c++ with well-established package managers, your build system on your proto repo could start with .proto and end with pushing a package. There probably aren't build systems this sophisticated but we're using SCons and a custom proto builder that can do incremental builds up to C# assemblies/C++ static libraries/python modules and leave the publishing to a second step.
Because of C++ runtime differences if you don't have control over client build settings (compiler version, runtime library, debug vs. release, ...) you almost have to distribute source files. If they are for internal use and you do have such control, you could distribute libraries of your own design.
Another caveat is for c++, with recent versions of protobuf where lite runtime is a build flag, I could see places where a client/server would use the lite proto runtime on one side and the full runtime on the other, and you'd have another switch on the client libraries to contend with.
Regards,
Mohamed Koubaa
Software Developer
ANSYS, Inc