first of all this is NOT a memory leak. by deleting the node, removing the layer connection or disabling it the memory consumption goes back to normal (though we call the last one an undesired behaviour, because it leads to glitches). so all resources are cleaned up properly.
the plugin uses ID3DXFont::DrawText to draw the text. this method caches each character it has to draw in form of a texture. the size of the texture depends on the size of the text.
this test patch creates about 100 new characters each second.
in case of ANSI there are only 256 characters, the internal texture cache of DrawText will therefor be filled after about 3 seconds. in case of UTF8 there are up to 2^32 characters, so it will take about 1.3 years (!) till the cache won’t miss anymore ;)
you can easily test this by adding a modulo of 256 to the test patch. switch between ANSI or UTF8 and the memory consumption will stay the same.
sadly we can’t do anything about the caching behaviour of the DrawText method, but what we can do is adding a few hidden pins in order to release all resources and therefor lower memory consumption and pins to control the pre-loading behaviour of various characters. hope this helps.