DMARC produces "pass" result if and only if at least one of SPF and DKIM checks pass. It has been noted that DKIM provides stronger protection of the two (if implemented properly). But, in order to require namely DKIM passing by a DMARC policy, one needs to "disable" SPF (either by not publishing SPF records or by publishing an SPF record which disallows everything).
I do not understand the reason for such design of DMARC: there are two checks (SPF and DKIM), but there is no way to enforce a particular one of the two by the policy. It requires changing the other check itself.
What could be the reason for the DMARC specification to have no flags for specifically requiring either of (SPF, DKIM) to pass?