We don't have such a guide. Eventually I would hope we have enough examples that you could compare them across languages. The differences you will see will mainly vary by language instead of implementation; grpc-go, grpc (C core), and grpc-java support the same wire protocol. How higher-level features are exposed and composed is the thing that varies much more, since we have put a lot of effort into making each language's APIs natural for each language.
Most features are present across the languages, or will be soon. Some "minor" differences may exist, like whether having two stubs creates two channels; some languages allow stubs to share channels and some do not. There tend to be reasons behind the difference in design, but both are "reasonable" for different usage patterns.
You do point out a case where Java has a feature that others do not: interceptors. The C core has interceptors, but they aren't for application use. They are an internal implementation detail. I don't think another language has interceptors at present. It's my understanding there isn't yet consensus which languages should support interceptors for application-use.
I work on the Java implementation, so others may correct me if I'm wrong.