As described in T77575 and this devtalk post the orientation of "duplifaces" instances is confusing under mirroring.
Briefly, the Y axis is calculated to be perpendicular to the polygon normal and the first edge in the edge loop. Reversing the edge loop order (to flip the normal) results in the Y axis being perpendicular to the last edge.
This patch extends the mirror modifier with an option to "preserve face space", which produces much more consistent results for quads and triangles used for face instancing. Since this changes the tessellation of the polygons, this is provided as an option rather than simply being the default.