Mirror object wrt. certain face
I found a workflow for this task in Blender 2.79 that does not involve any snapping or creating empties:


Make sure your "Transformation Orientation" is set to "Normal" (usually on the toolbar just below the 3D view, next to the translate/rotate/scale buttons). Also make sure your "Pivot Center" (the selector just to the left of these same buttons) is set to "Active Element."
In 3D view object mode, select the object you want to mirror.
Assuming you want to end up with the original and the mirrored copy, as shown in the question's screenshots, duplicate the object (e.g., Shift-D then return). You can skip this step to just flip the object through a face, not leaving behind the original.
With the duplicated object still selected, enter Mesh Mode (Tab).
Select the face through which you want to mirror.
Now we want to select that whole mesh, leaving that face as the active face. Hitting "A" twice should accomplish this.
Now it is time to mirror. We need to mirror in the local z-axis, set by the normal orientation of the active face. What works for me is to hit "Control-M" for mirror, followed by Space (don't know why that's needed). Then in the panel to the left, a bunch of Mirror options come up, and I click on Z.
Note that the newly mirrored copy will have its normals pointing in the opposite directions of the original. If you want them pointing in the same directions, now is a good point at which to flip them. (For projects in which I am doing a lot of reflecting through faces, I bind the "Flip Normals" Mesh action to a key for this.)


That's it, you should now have your mesh reflected through the selected face; you can Tab back to object mode and repeat the process if you want to reflect again through another face.