When I call clone() on a ModelEntity, is all the mesh data duplicated or just referenced?
As mentioned in this WWDC video "It references all the same assets used by the original".
Also, if you are ever curious about the memory impact of a particular method, you can create a focused project where you call the method many times, and then run Allocations on the project in Instruments to see what the impact is.