The way CylinderGeometry is generated does not allow the usage of .computeVertexNormals(). (Vertices of the caps are not shared with the torso so uv mapping works correctly).
It is normally not necessary to call .computeVertexNormals() since the normal vectors are already calculated. The default geometries in three.js are not intended for that sort of of post-processing.
Like i said before, what you are doing in your code is not supported by three.js's default geometries. Recalculating the normals via .computeVertexNormals() does not always produce proper results.
I’ve updated my jsfiddle from the previous message with the profile that you provided in the picture. It works as expected. I see no problem with using THREE.LatheGeometry() in this case.