ASSIGNING VERTEX NORMALS

If a vertex bounds a single polygon , the "normal of the vertex" has a natural meaning, and this can be deduced from the the polygon.
If a vertex bounds several polygons, then each of these polygons will assign a normal to the vertex, and again, we could try to define the "normal" of this vertex as some kind of average of these normals.
How to form this averaging is application dependent. So OpenGL lets the user specify the normal of each vertex, arbitrarily. This flexibility can be regarded as an advantage.