I run into two problems with SPF (haven't looked at DKIM).
First, I often send mail from my laptop, connected to the internet with various means. Many
networks have firewalls blocking outgoing connections to port 25, meaning I have to relay my
mail via their SMTP gateway instead of my own. I suppose I could tunnel all my outgoing mail
to my SMTP server via ssh or some such, but I have several less technical users of my domain
who also are heavy laptop users, or use my domains for personal mails when at work etc.
Secondly, I run a bunch of mailing lists. This means a lot of mail from various senders is
relayed by my server. The official solution to this is to rewrite the sender in the mail
headers, which seems like a terrible kludge. A mechanism whereby I could insert a server
signature in the headers indicating that I have OK'd the sender would be a better solution.
SPF just doesn't fit in with how SMTP works.