Animation nodes: applying material to text instances
Now Blender 2.8 has Animation Nodes 2.0, as such there is more material handling available. I was able to use Animation Nodes to assign materials to text instances without deep copy. The text instances were created from a text block list making objects with unique names.

I used Object Material Output nodes (labeled 1,2) from a Get List Element node which you can iterate.




These materials were defined as Eevee types but it should work with Cycles as well. Note that the Get List Element is an integer index so you can't blend the materials this way.