This is a warning from bind (named).
When SPF was originally implemented, it used TXT records, as there was no RR type for SPF. This was later added by RFC4408, and the named developers eventually added a warning, to alert you if both TXT and SPF RR types were not present.
As per RFC4408, "An SPF-compliant domain name SHOULD have SPF records of both RR types", so it's not compulsory, but you SHOULD do it, and that's why named gives a warning, but not an error.
In other words, the SPF validator you used isn't actually as thoroughly as named is. It SHOULD also be warning you when the SPF record is not present (or if it contains different data from the TXT spf record)
There's a discussion about the issue in this google forums thread: https://groups.google.com/d/msg/comp.protocols.dns.bind/6Miv-dfaoXo/Z-NQHlqsHa4J