Okay Tom @tfsuper3d ,
I think we figured it out now; I was wrong the first time, the Smooth Shading interpolates between the Vertex Normals,not between the Face Normals (I actually knew that, but thought it made no difference). So, to put it all together in one picture; the Vertex per Face Normals (used for Flat Shading) are averaged to make the Vertex Normals and then the Vertex Normals are linearly interpolated, something like this:
