Byl převzat pouze dependency solver (libsolv), zbytek je inhouse kód částečně založený na původním kódu yumu. Zde je vhodné poznamenat, že libsolv je hodně flexibilní a depsolving samotný se dá do značné míry ovlivnit změnou různých nastavení - je tak pravděpodobné, že se chování dnf bude od Zypperu v některých ohledech lišit.
K vámi popsanému dotazu - podobného chování lze dosáhnout i v yumu, i když poněkud oklikou. Popravdě řečeno nevím, o kolik je to jednoduší v dnf. Není ale nic jednoduššího, než přijít na #yum @ FreeNode a poptat se tam, případně rovnou založit RFE v bugzille.