> Context: This above and this aren't a major comment but more of a point for discussion, as I want to learn more.

Same for me.
 
> As far as I can tell, the Protocol Buffer stack would already panic() on its own if this wasn't guarded, thusly it wouldn't be a defensive check that we'd have to implement here. Another question: Would there ever be a legitimate condition whereby some should really expect the state to be such that DecodedVal == nil? That just sounds like a design/illegal state error to me.

Absolutely correct, goprotobuf when nil is given to Unmarshal, but as mentioned above this leaves the caller with a `runtime error: invalid memory address or nil pointer dereference`. It sure is an illegal state that `DecodedVal` is `nil`, which happens as soon as `ProtobufCodec` is instantiated.

> What do we know for canonical examples of handling this behavior/scenario?

Non really.