Shouldn't you use SRV and NAPTR records?
SRV records were, roughly speaking, meant for letting people add this sort of thing to DNS without having to add new record types. See also RFC 2761, Extension Mechanisms for DNS.
Yes. But SRV records are for defining servers that listen on a port to implement a service. SPF defines a set of clients that connect to a port - the opposite of what SRV is intended for. Sure, a SRV convention could be hacked together in spite of this, but SRV records are hard for people to understand, and TXT records are easy. Fast widespread adoption is our goal. The Right Thing To Do is to get our own RRtype, and although it took a long time to get it, we have it assigned. There is a Python script available for download as part of the pymilter project to convert the content of a type TXT record to type 99.
Currently almost all SPF records are published only as type TXT. Type SPF records (Type99) should be published if DNS servers are capable of it, but MUST be identical.
(for SRV records, see http://dqd.com/~mayoff/tools/djbdns/make-record.adp)