Order is guaranteed for these character strings; at the wire level they are a contiguous blob. With the increasing adoption of SPF though, it's also increasingly common for implementations to preserve the order of the TXT records in a multi-record record set; so that the records can be concatenated in order to make a meaningful SPF string.
On the wire the records look like this;
name type=TXT class=IN TTL=NN RDLENGTH=MM [length]some text[length]more text
name type=TXT class=IN TTL=NN RDLENGTH=MM [length]even more text
which should be concatenated by readers (e.g. SPF implementations) to form a logical string like "some textmore texteven more text".so if you use multiple records, you're really just putting arrays on top of arrays. It's usually best to stuff things into one record though, so that you don't have to risk an intermediate resolver re-ordering things.
Here's one of the earliest records ever created in Route 53, to test things out;
dig +short TXT bradm.com @ns-323.awsdns-40.com | sed $'s/\" \"/\\\n/g'