I quibble with your interpretation of the spec. The actual words are
"For 2xx responses, the location should be the URL needed to
retrieve the same resource again..."
Apparently the "should" is ambiguous. You read it to mean that a
server *must* send a Location header, and its value "should be the
URL...". I read it to mean that *if* the server sends Location, its
value "should be the URL...".
AFAIK, servers are not required to send Location except when they send
a 30[123] response. In looking at the spec., though, I find that it is
fuzzy about which headers must be sent under what circumstances. In
particular, the descriptions of the 30[123] response codes should
probably make explicit reference to the Location and URI headers.
In general it would be nice to be able to identify quickly which
headers are required and which, optional. (That's a weasily way of
saying "Would someone else please propose such content for the spec.")
Dave Kristol