This behavior occurs for exactly the same root reason as the infamous small geometry problem: to allow for floating-point arithmetic, SketchUp puts a tolerance around how closely things match before they are considered "same". In the small geometry case, it causes vertices that SketchUp deems to be "the same" to merge. In the color by axis case, it causes SketchUp to color an edge if it is "close enough". And in both cases, it is not hard to construct a model in which close enough wasn't adequate.