when a single face in a loop is hidden, loop cut will subdivide edges on both sides. creating an edge between the hidden faces. without this workaround the edge ends up hidden and selected. added a check in BM_mesh_validate() for hidden/selected elements.