Given two version of the same package, it should be possible to create a delta package, which upgrades an installed instance of the older package to the newer package. The delta package would require the old version to be already installed and contain xdeltas and full copies of files from the new version. i.e. when you install a delta package, it would check that the old version of the package that it requires is installed, verify that all of the files that must be unmodified in the old package actually are unmodified, applies xdeltas to those files, creates new files, deletes unneeded files, and replaces config files (standard rpmnew/rpmorig stuff). The end result would be as if you downloaded the full version of the new package, and did rpm -U on that, except that the delta package would be significantly smaller than a full sized RPM. Creating a delta package would be a matter of "rpm-delta blah-1.0-1.i386.rpm blah-2.0-1.i386.rpm", which would create blah-1.0-1--2.0-1.i386.delta.rpm or something to that effect.
The mechanics of applying a delta on the client are well known. The harder, more complex, issue comes from managing all possible deltas on a server. That cannot be easily solved, certainly not by an rpm client.
*** This bug has been marked as a duplicate of 103205 ***