There are a few issues with mirrors, and various tricks to make it look like you’ve implemented one. There are legitimate reasons why a lot of reflections are “faked”, or even partially faked.
The most obvious is that a single mirror can double the amount of polygons you potentially need to render. A fair amount of 3D rendering speed comes from figuring out what you don’t have to render. Any polygons facing away from the camera won’t be rendered, and that describes roughly half of the polygons you’ll find in the average game model. When you add a single true mirror (or even simulate a mirror such as by using a second camera), you’ve potentially made all those previously invisible polygons visible and can’t just immediately ignore them.
A second issue is getting a mirror to look “right” efficiently. If you treat a mirror as a second camera, then you have to watch out for the optimizations used by cameras. Cameras clip polygons that are too close or too far away in order to speed up render times and to avoid some other issues. If you don’t account for this in your “mirror”, then you can have a mirror that doesn’t “reflect” things that are too close to it, or you can see a visible (to the main camera) object that lacks a reflection because it is beyond the mirror’s view distance.
Having multiple mirrors that are not on the same plane causes all sorts of additional issues.
Of course you get more issues when you throw various other special cases into the mix. Dynamic shadows, dynamic lighting, all sorts of things produce all sorts of special cases and require special rendering on their own (particularly when optimized).