I tried to use `rpm -Fvh *.rpm` to update a RH 6.0 install to RH 6.1 and found that it didn't succeed. The problem appears to be connected with RPM's where the new version is dependant on RPM's the old version wasn't dependant on that weren't installed (and sometimes didn't even exist in the old version). Personally, I would suggest that if this situation occurs, AND all of the RPM's it is dependant on that aren't installed are included in the parameter list, then rpm should just include those RPM's in the list of RPM's to be installed by -Fvh as if they had previously been installed. Alternatively, is there a different option that has this behaviour? I can't find any.
The original implementation of --freshen, implemented as a shell script with several queries, could fail if, for example, there were network latency problems or errors. --freshen is now implemented in C (since rpm-3.0.5) and so has little to do with this problem.