It's starting to come back to me now ... with respect to the data handling there's no guarantee that a receiving application/intermediary will be able to hydrate the actual ProtoBuf message from the data on reception, that's why the 'Any' construct is returned so that the business app can do the appropriate type mapping if needed, or pass it on elsewhere if required.
Granted this does mean the 'create' and 'read' aren't entirely symmetrical ..
Originally posted by @JemDay in #523 (comment)