During a visit to Washington University I had the opportunity to work with this flaw in the algorithm and I ended up publishing a scientific paper about the subject. I then went on to write my thesis (in Danish) where I worked more rigorously on how to deal with this. It's so long ago that I almost forgot so reading about marching squares again was a nice trip down memory lane.
https://martinliversage.blob.core.windows.net/publications/1...
https://martinliversage.blob.core.windows.net/publications/1...
They are. He does mention using interpolation to make better boundaries. For example if you're using a threshold value and flag points as above/below that value, you can position the end-point of a line based on that threshold. When the lines don't exactly split a squares edge then cases 5 and 10 can be made less ambiguous by selecting the lines that minimize total line-length within a square. Or some similar heuristic.
For instance, if you are plotting the line where the field crosses zero, and one point is at 9 and its neighbour at -1, you should place the intersection point at 90% of the distance from the first to the second.
He does mention interpolation but doesn't go into it. That can also be used to resolve the ambiguity in cases 5 and 10.
Now I am wondering if you could use the alternative for case 5 or 10, but not both.
https://developer.nvidia.com/gpugems/gpugems3/part-i-geometr...