Isn't this the very same issue as these:
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=130352
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=111071
..making it an rpm internal issue, for a depsolver to work around it
you'd have to mark that specific instance for erasure and the new
package for installation instead of a normal upgrade. Which was
discussed wrt updating external kernel-module packages as well.
The other option, which I'm kinda loathe to implement is to change the
mechanism for adding updates into yum's transaction set holder.
so that you could do:
addUpdate(foopackage) # which would update over all older foopackages
addUpdate(foopackage, this_old_package) # which would mark only
this_old_package for erase and install foopackage)
that might be an option but to 'fix' it globally it should be done in
rpm.
-sv