Yeah, I was mostly just filling in around your answer. Was on a tablet at the time, so I limited my words.
I have actually have been thinking of even nuking the references to any unpinned / non-update-able vertex data, when the mesh is first ready. Get it queued to be dropped early. It never gets used again, except for perhaps any mesh info calls like
getTotalVertices(). Obviously cannot use
dispose() itself for this.
Not high on my priority list though. More of a production deployment step. Nuking matrix indices & weights would obviously kill animations if cpu skinning was downgraded to, but that is almost an early warning feature telling you something needs to change.
Not sure if there is a way to tell if a piece of vertex data was updateable, but I can just check if there are shapekeys (for cpu based morphing) in the Mesh subclass I use.