Actually we have a bunch of drawing functions with or without indices for sending batches of vertices. It was expected that sharing vertices would speed up thing. However, when you look at some objects to draw, like a cube for instance, each vertex is shared by 3 faces but on each face, the texture coordinates are different, as well as the normal vectors. To my knowledge, there is no way to have separate indices on each active array. So, in fact, we must dupplicate the metric coordinates.
My suggestion is to provide drawing primitives with separate indices to arrays. In the cube example, we would have to dupplicate only the indices to the metric coordinates.