Blender understands vertexs as a "real life vertex". However 3d engines require vertex data to be sent to the GPU in order to render.
This means that if the same 'blender' vertex has different normals for each face that share that vertex, this vertex position must be "duplicated" because from the GPU standpoint, it's a different vertex.
You can't say a GPU "i want the vertex #3 with the normal #5", so the vertex position is duplicated (but the normal is different)
To test it, just create a cube. Blender will say 8 vertices, MG will say 24. Now smooth the cube so that each normal is shared by each vertex. Blender will say 8 vertices, and MG will say 8 vertices too. (but the cube will not look like a cube)
Actually blender tells you that there are only 8 vertices, but he uses 24 to render too. =)