Yes horizontal and vertical connection should work perfectly. When ever you rotate block you will have to be very lucky not to have gap on connections. Sometimes i use tab and instead of gap i create small overlap of 2 blocks, and it appears as perfect connection.
look pictureYellow thingie is center of rotation.
Lets assume that grid is all possible positions for center of rotation, on x/y axes.
You can see why when you rotate object in some strange angle you cant make perfect connection anymore(Pitagora will not let you

).