Difference between 'as string' and 'as text'?

The question is simple:

Is there a difference between using ‘as string’ and ‘as text’?

In 10.5 and later, no.

Nor in 10.4 and earlier. However, they were then both different from ‘as Unicode text’.

In 10.5 and later, all text handled directly by a script is UTF-16 Unicode text and the coercions ‘as string’, ‘as text’, and ‘as Unicode text’ all mean the same thing. The documentation gives ‘text’ as the standard term for this class from 10.5 on, the other two being accepted as synonyms.

However, the File Read/Write commands in the StandardAdditions OSAX still differentiate between ‘as string’ (or ‘as text’) and ‘as Unicode text’. This is to allow files to be understood as ” or written to in ” the old ‘string’ class. The ‘as’ in this case isn’t an AppleScript coercion but a labelled parameter of the ‘read’ or ‘write’ command used.

That’s strictly true, but there were some issues with the use of text with some apps. As for read/write’s as parameter, I seem to recall that in 10.4 you could not use “as text” – it had to be “as string”.