In this case, it happens when the required number of triangles increases, such as when you show a large number of meshes (or a single complex one), from a state where they were hidden.
The allocation should only happen the first time it becomes visible, as the triangle buffer only reallocates to accommodate the larger count, it won't size down again if the required triangles decrease in number.
A case where it isn't able to cache the larger triangle buffer is when your skeleton has multiple Textures/Materials. The lower submeshes always needs the correct number of triangles so any time you hide or show attachments, the triangle count can change, and it needs to allocate a new buffer of exactly the correct size needed.