It is conceivable that another client also modified other aspects of the resource in the interim. So is it best practice to always include the full representation in the re
I like to think of GET and DELETE being a pair -- they take only an ID.
POST and PUT seem like a pair as well. They take a serialized object and make it persistent. Consequently, I think both POST and PUT should return the resulting object as created.
In some cases, you may be doing additional calculations as part of the persistence, and the PUT could reflect those calculated results. Technically, this might be a 3rd normal form violation because you have derived values. But often, the whole point of the web service is to do some value-adding calculation as part of POST and possibly PUT.