Currently the easiest way to upgrade from rpm 3.x to 4.x is upgrading whole RedHat distribution to 7.0. This results in many, oftem sophisticated custom system elements getting overwritten and numerous other problems, especially if you want just a few elements of system upgraded and the rest left intact. You can not upgrade separate packages "by hand" if you have rpm 3.x installed, because it won't support the new rpm 4.x format all the packages in RH7 are in. Unfortunately the first step you think of, that is #rpm -U rpm-4.0-x.i386.rpm displays exactly the same you've seen a moment before attempting to upgrade any of other packages. Same with -src.rpm. The common RPM databases search returns only 4.x in 4.x format and useless old 3.x packages. rpm.org claims 3.0.4 is the current release. Luckily there are sources of RPM 4.0 on its ftp site. The workaround is grabbing rpm-4.0.tar.gz from rpm.org and compiling it, but I guess RPM system was designed to avoid such techniques? (I think a good place for the rpm 4.0 in v3 .rpm file would be the Powertools disk.
rpm 3.0.5 and 3.0.6 can handle rpm4 format packages. You should take due care however since you are going to be changing your rpm database format.