When resolving a URL in fetch.txt, you may get different results depending on content negotiation. Therefore you may get a different resource back (e.g. HTML instead of JSON) depending on the browser and client setting used to retrieve such a resource - obviously if you get the "wrong one" the bagit checksums will be wrong.
I think the specification should recognize this, and perhaps specify the default Accept headers to use, e.g.:
Accept-Language: *
Accept-Charset: *
Accept: application/octet-stream, */*;q=0.1
The headers Accept-Language and Accept-Charset may be excluded as their default is *.