I'm thinking it's because STM Quads use submeshes. After 1024 objects on a canvas, some optimization or whatever code is modifying verts on a Unity canvas must be running, but doesn't include submeshes. This falls in-line with what I saw with Unity's VertexHelper class when I was writing STMMaskableGraphic - I needed to create a vertex stream for every submesh used on STM, then use the data from those to fuse everything back into one mesh. I got the sense that Unity itself prefers to use a single vertex stream and ignore submeshes from this. Whenever a material change is used in STM, submeshes are used to display multiple materials with a single mesh, so you should see this with font changes, too.