Vertex Array

If I have some vertexes
and my list of indices (for example) is such

0 1 2 3 4 3 5 3

and I use glDrawElements();

so the 3rd vertex will be transformed by opengl 3 times or just once ?

Once

Depends on the implementation. Smart implementations and smart HW will do it once. The reuse also depends on locality of indices. Don’t expect HW to buffer very many vertices (talking about 16 or so).