In the first form, without arguments, the xtype command has the same behavior as type.
When used in the second format, each character in <text> is inserted into the input line, ignoring any key binding it might have. Each character is treated as though it were bound to self_insert.
Whereas the type command changes the ^ character followed by another character into a control character, xtype -l treats them as two individual characters. Further, the type command changes the \ character followed by another character into the second character, but again, xtype -l treats them as two individual characters.
|-literal <text>||Overrule key bindings and insert characters literally|
To literally insert a caret followed by a instead of whatever control-A is bound to:
xtype -l now inserting a ^A is easy!