Why subdivided faces with smooth shading acting weird?
The most likely reason for this is your object normals are facing the different directions at these edges. To fix, go into Edit mode, select the mesh and recalculate normals with CtrlN, Or you could manually select faces and flip the normals.

You can often confirm or investigate most most odd looking artifacts on your models by enabling a normal display type under Mesh Display in the Toolshelf (N). On a clean model, depending on the use case, both the vertex and face normals should point outwards.