It looks to me like the issue with merging functions like in the example given is that they are creating T-junctions.
These have a vertex somewhere on the edge of a neigbouring face.
That can be treated in two different ways by software. Either the neigbouring face is using the node, in which case it isn't a triangle, or the face ignores the node (in which case it can still be a triangle).
The issue with both of these is down to rounding.
Any three points are co-planar, but four points may not be. Most arbitrarily angled planes won't put all four (or more) given points exactly in positions which can be represented with a fixed number of bits.
Similarly, if we have a point on a line - in-between the ends of two arbitrary points, it may not be representable exactly in a fixed number of bits.
It will be close - white van close - but still not good enough for all purposes.
So the upshot is that you get a thin slint opening up the skin of your model.
So either way, the only real solution is to force everything to triangles.