What is the function of Vertex Paint section?

I think that the purpose is to paint materials, so, to assign materials in a more smooth way instead of assigning net faces.
But I’ve seen that it is also possible in Texture Paint, making black/white textures and using a Mix node with 2 textures or effects, to obtain the illusion to have 2 materials.

So what is the real functionality of Vertex Paint section?

It’s just another method of painting a mesh. I won’t pretend to understand the technical side of it, but you’re applying paint to the mesh directly, by changing vertex attributes. No uvs or texture maps to prepare. More vertices will give you more subtlety and variation.

Apart from letting you assign a color (or 3 float values) to vertices, there’s not much more to it.
But as normal in Blender, you may use this for a variety of purposes…

For example, painting high density meshes (as Macser points out); adding variations to textures (specially procedural textures that you don’t paint), based on the mesh geometry; Or by using it to store values from and for scripts (like the ‘dirt vertex colors’).

It may not look the best tool in blender, but it is good to have it around.

Vertex Painting is something we use in games a lot. we use the channels (including the up coming Alpha) as masks for blending materials and textures. e.g. a stone wall and a snow material, paint the red channel where you want the snow to be visible.

This is also useful in Blender for offline rendering.