In principle this could probably be done. To program /RESET has to be held low, but as far as I can see the 16U2 has its own reset (net name RESET2). I haven't attempted it myself. You would, of course, not be able to get serial debugging messages out (the USB port) while you were doing it.
Good point and reason enough to use a regular programmer, still it might be fun to try it on a spare board.
as far as:
All serial monitor does is open up the serial port. That's it.
Yes it is a serial port, and yes the port is simply opened but the question still remains: is what comes out when I type "qwerty" any different when different boards are selected? I do not know of any reason for a difference, and I could assume that there is no difference but I would rather know than assume.