This is unexpected; I expect that the file is treated consistently in regard to (1) whether to download it, (2) what file name to store it in, and (3) whether to examine it for links, in that all three decisions would be made based on either the original URL or the ultimate redirected URL. (The decision to use the original URL seems to be the correct choice to me.) But wget's behavior is to make decision (3) based on the redirected name, not the original name.

In addition, (as I read the documentation) wget will read all URLs that are named on the command line, regardless of whether they meet the include/exclude criteria, and so I expect that with -r, all those URLs would be scanned for links. However it is clear that wget does not always scan provided URL for links.