1. It doesn't really matter how many triangles the vertex is shared by, the way I do it is to:
loop through all vertices and set the normals to (0.0,0.0,0.0)
loop through all triangles and add the triangle normal to all 3 vertices of the triangle
loop through all vertices and normalise the normal
Although this works well enough it isn't a perfect solution, considering a cube for example, there may be a vertex that is shared the by 2 triangles that make up one cube face and only 1 triangle that makes up one of the other cube faces which means the normal will be weighted towards the normal of the face that has 2 triangles sharing the vertex
2. I'm not quite sure what you mean by triangles that crease in more than one direction, it shouldn't matter where in 3d space your 3 triangle vertex coordinates are as you can always connect any 3 points to form a flat triangle (unless they form a straight line or 2 or more vertices share the same coordinates)