I stumbled upon an issue in this thread where I discovered that some of my same-sized overlapping faces did not merge with each other despite doing a M > Merge By Distance. But fortunately found a fix in this thread by doing Mesh > Split > Faces by Edges and then Merge By Distance. Upon further inspection I discovered that just doing the Merge By Distance function could indeed not have resolved the problem because the 2 faces were sharing the same 4 vertices.
I was able to reproduce this scenario using the below script by drawing 2 faces on the 4 vertices, each with opposite Winding Orders so both faces would have normals facing in opposite directions. In Blender, a CCW winding order is a Blue face and CW order is Red face. It's a bit confusing and does not make sense to have such geometry be allowed to exist. Hence my question: Is having 2 faces with 4 shared vertices a bug or expected valid 3D geometry?
import bpy
context = bpy.context
verts = ((-1.0, -1.0, 0.0),
(1.0, -1.0, 0.0),
(-1.0, 1.0, 0.0),
(1.0, 1.0, 0.0))
faces = ((0, 1, 3, 2), (2, 3, 1, 0))
me = bpy.data.meshes.new("Plane")
me.from_pydata(verts, [], faces)
ob = bpy.data.objects.new("Plane", me)
context.collection.objects.link(ob)
context.view_layer.objects.active = ob
ob.select_set(True)
Thank's to @Nathan for pointing out that you can actually create this scnario with regular Blender operations which made me discover a method to create as many faces as you want! Here's a scenario where I reached 5 faces sharing all same 4 vertices and you can go and create as many faces as 100 or as you like with this method:
But if you attempt to dissolve 1 vertex it changes into a triangle with only 1 face left.