https://bugzilla.redhat.com/show_bug.cgi?id=1805779
--- Comment #12 from Adam Williamson awilliam@redhat.com --- Hadn't noticed that bug, that is annoying. IIRC, though, it always used to work that way, and querying by provides as well as literal name is a fairly recent feature, so I always used to hack up a little bash something like this:
for i in `dnf repoquery --provides foo`; do echo "PROVIDES $i"; dnf repoquery --whatrequires "$i"; done
untested and it probably has a mistake in it somewhere, but you get the idea anyway :)
BTW, there's I think one more reason to have the Provides: to ensure the package actually gets installed on upgrade. I haven't checked to be sure, but IIRC if 'new-foo' only Obsoletes 'old-foo' but doesn't Provides it, when you do an upgrade, it's not actually guaranteed that 'new-foo' will be installed to replace 'old-foo', it'll only happen if 'new-foo' is pulled into the transaction for some other reason.