smart uv unwrap creates duplicate (not overlapping) uv mesh segments
These are not not duplicate face they are vertices shared between these faces and are highlighted on both of them and that's because you are using vertex select mode if you switch to face select it will be clear





something to note about UV mapping :

each vertex has a general index obj.data.vertices[index] and loop indecies (one or more ) obj.data.loops[loop_index] which is used in the UV mapping so each vertex can have more than one UV coordinates in the UV map. UV coordinates are obj.data.uv_layers[UVmap_index].data[loop_index] 

in a nutshell when UV mapping you are dealing with faces not vertices



UPADATE: 
The problem is with UV unwrapping which is producing scattered face from different regions  and the low resolution texture image you are painting on ,after using texture paint on the face only :

 

you can see that the paint spreads to different regions and that's because of :


UV unwrapping ( small spacing , and scattered faces ) 
Texture low resolution (compared to the mesh density )




what you can do is :


unwrap again with larger margin
use higher resolution texture


OR:


try another unwrapping method


Note : 


you may want get ride of the extra vertices using Remove Doubles ,
you can paint texture directly on the mesh with Texture paint mode