StreamObserver is used for all responses, even when the response is not a stream. To easier understand the generated API it'd be better if unary responses would be treated as such and have a different Observer that suggests that there will only be one response.