Cloning the objects is a fast approach. No data needs to be transferred across the network.
Another option is to attach transformations to your geometric objects in Grasshopper. In this case, the objects are stored and transferred only once, the transformations are transferred as well, and the glTF loader in the viewer takes care of the cloning for you, which means less or no coding in JavaScript.
A third option would be to create multiple sessions for a single model and set the transformations on the session’s node. In this case, you pay credits for each of the sessions individually.