running, for example: rpm -Fvh ftp://linux.rice.edu/pub/redhat/updates/i386/emacs*, rpm-4.0-0.66 will attempt to download all 50+ megabytes of RPM files, *before* it checks the version number on each to discover that I already have the latest versions of all my installed emacs RPMs. In fact, rpm -Fvh ftp://linux.rice.edu/pub/redhat/updates/i386/emacs-leim* will try downloading that RPM, even though I do not have emacs-leim installed on my system and so could not possibly want to freshen that package. Running "rpm -qip", on the other hand, downloads only the package headers necessary to determine the --info query. Could this behavior be used for upgrade and freshen commands as well? When rpm reaches the end of the headers on the file it is downloading, could it check package and version information *then*, and so decide whether to continue or cancel the download before it wastes bandwidth and disk space on the entire file?
On install/upgarde/freshen pathways, rpm always downloads the entire package before attempting an install, while query aborts. The rationale for this behavior is that query failure, due to network transport problems, is not as critical as package install/erase failure. If you don't like the behavior, then supply rpm a list of packages as in rpm -Fvh `cat <your_list_here>`