I disagree. Say you have a javascript library that adds ?timestamp=1232 to an image. If you redirect them back to the image without it, it isn't doing its job.

Javascript libraries often add that so it knows when the image loads. If a cached image is hit, jquery doesn't always tell you its load because it didn't need to reload it.

Also, this ensures that the filter/hash variables are always present. If you remove them, it means that if someone copies and pastes a image path and the cache is deleted it won't be regenerated. It would be regenerated if the query params were available.