1) JD already uses No Cache headers.
2) This can be done if JD knows the address of the cache. Otherwise, most sites will return an error.
3) Some JD host plugins use a randomly generated User Agent for each connection. JD probably needs to do this for all hosts. A randomly generated Referrer string for each connection might help as well (such as
www.google.com/search?q=(random word)&user=(random hexadecimal number))
4) It is coming. Probably in the next Major release.
However, carpet errors are hard to trace and we might not be able to correctly diagnose them (they are not related to JD). Every few months, you should turn off all electronics and spray all carpet near electronics with Static Guard (or equivalent) to a distance of at least 1.5 meters.
1) Force no-cache and bypass cache headers on the HTTP request (some ISP proxies may ignore even this, although they shouldn't).
2) Add random parameters to the HTTP query (like ....&jdown=1234) in order to force the ISP's cache to interpret it as a different request and thus bypassing the incorrectly cached file (this may not work with all downloading sites).
3) Allow the user to change jDownloader's user agent string (many ISP caches take the user agent as part of the cache key), and let the user see if it works for her.
4) Correctly identify errors coming from network problems or file size inconsistences and display a different error message so the user doesn't go crazy looking for errors on her disk, anti-virus, Windows, Doors, Carpets, etc.