Actually some modifications to what I wrote are necessary to make
sure if PTR is not there SUBMIT would override MFROM. It should be like:
-----------------------------------------------------------------
Step | SPF Identity | Result of verification
------+---------------+-------------------------------------------
1 | SPF2.0/HELO | If Fail -> reject, otherwise go to 2
2 | SPF2.0/SUBMIT | If Fail -> reject, otherwise go to 3
3 | SPF2.0/MFROM | If Pass -> accept email, otherwise go to 4
4 | SPF2.0/PTR | If Fail and #1 was not Pass -> reject, otherwise 5
5 | n/a | If #1, #2, #4 are None and #3 is Fail -> reject
| | othewise accept email
-----------------------------------------------------------------