Michael is correct in regards to where your point of confusion is coming from. I'm going to proceed with my usual stuffiness and answer the larger question for those who might happen by from a Google search.
TXT records are completely legal per the DNS standards.
TXT records implementing a specific standard can potentially be illegal, but only within the scope of that one standard.
- Given the need for multiple standards to coexist and play nicely with other
TXT records that share a given name, conflicts are unlikely to happen. It is certainly unlikely that such a requirement would make it into an Internet Standard.
To understand the difference, let's take a look at what the SPF standard (RFC 7208) has to say on the topic:
Starting with the set of records that were returned by the lookup,
discard records that do not begin with a version section of exactly
"v=spf1". Note that the version section is terminated by either an
SP character or the end of the record. As an example, a record with
a version section of "v=spf10" does not match and is discarded.
If the resultant record set includes no records, check_host()
produces the "none" result. If the resultant record set includes
more than one record, check_host() produces the "permerror" result.
TXT records which do not meet the syntax requirements of SPF are ignored. An error only occurs in the case where multiple records match SPF syntax.
(DMARC syntax carries the same restriction, for those who might be wondering.)