As you know to compile the sketch you have o select your Arduino Board and a COM Port where it is plugged in. So from there the Board knows where to send the data. External to the USB port you have for exmaple on the mega with the digital pins 0 and 1. So one of this pins is for transmitting data (TX) and one is for receving data (RX).
2 and3) Yes it has something to do with UART namely with the RX and TX wires I wrote above.
The USB port definitions are in my case here:
C:\Program Files (x86)\Arduino\hardware\arduino\firmwares\atmegaxxu2
The print definitios are here:
C:\Program Files (x86)\Arduino\hardware\arduino\cores\arduino
and there are some library files where probably the class definitions for the UART is
4) for exmaple you call Serial.println("blabla"); the text "blabla" is pushed char by char into a ring buffer. if he board sends the text o the Serial Monitor on the PC than i empties its content respectively sends it content over the USB cable to the Terminal program (Serial Monitor). If you recevie data then again you fill up an ring buffer (Receive ring buffer)
For further information, I recommend you to read:
http://arduino.cc/de/Reference/Serial