Subdivision surface modifier, faces not connecting
As moonboots suggested, the Edge Split modifier is the culprit here. It literally turns every edge into 2 edges creating disconnected faces which messes with subsurf.
Edge Split Modifier Doco
You can test this by turning &quot;Sharp Edges&quot; off and reducing the &quot;Edge Angle&quot; value down to 0. You will notice that every face becomes rounded as though every face is disconnected. (Cool effect though!)

For what you are trying to achieve, using Crease is a much better option.
Delete the Edge Split modifier, select the edges you wish the subsurf modifier not to effect and hit Shift-E to add a crease to those edges. It is a bit of an art knowing which edges to apply Crease to but you will learn it as you go. The crease value can also be found in the N-Panel under &quot;Item&quot;