I am dealing with the same issue, just planarizing quads.
This has something to do with tolerances.
If I use tolerance 0.01 I can create planar boundary surfaces, but when I use 0.0001 I cannot.
I reality they are both not planar, but on first case the deviation from planar is around 0.01 unit, so rhino assumes it is planar and creates surface. I am wondering if there is even such thing as planar if considering floating point errors, as points will often deviate at least 0.0000000x from each other in all cases.
So you have consider two things units you are working and tolerance.
So if you are using for instance units as meters, you can question if 0.001 unit tolerance which is 1 mm is good for you?