A completely different reason than what’s been said so far —
REST interfaces are about Resources, and each Resource has an identifier, which are URLs. Just because you want the Resource in a different serialization, be it XML, JSON, HTML, or something else, we’re still describing the same Resource.
So, instead of giving a different path to the XML vs. the JSON one, we use the ‘Accept’ header to determine what the client is interested in. In some cases, services use the ‘Accept-Language’ header to determine what language they should use for their metadata.
If we assign different identifiers to different serializations of the records, for the semantic web, we then have to embed extra information to link to all of the records that describe the ‘same’ object.
You can find more information about these efforts under the term Linked Data, although that typically refers to using RDF at the serialization.
update : with the discussion of linking to specific formats, I’d also recommend people consider reading up on the Functional Requirements for Bibliographic Records (aka FRBR), which has a conceptual model for the relationships between ‘Book’ as an abstract ‘Work’, vs. the physical ‘Item’, and the levels in between. There has been a bit of discussion in the library, information and semantic web communities on FRBR, including how it relates to digital objects.
Basically, the issue is that you can assign identifiers at a number of levels (eg, the Resource, and the text of the metadata about the Resource, or the serialization of the text of the metadata about the Resource), and each have their own use.
You might also see OAI-ORE for a specification for reporting relationships between objects, including alternate formats or languages.