The generated code can either depend on the new PGV's Java validator at runtime, or this could be reimplemented in Scala. The advantage of the latter is that it would support for Scala.js and Scala Native, but that can come later.
The challenge with (2)(2) is that you'd have to somehow get access to the data provided by DescriptorImplicits.scala within PGV (in order to have the Scala names of things), it looks like that would have to get reimplemented in Go which I think would be brittle to match all the nuances and special cases (how naming conflicts get resolved).
Thanks for working on this. Feel free to ask if you have any further questions. And let me know once this is ready, we can put a link to it from the ScalaPB docs.