I have read that serial (UART) communications are unreliable or will not work when using the 8MHz internal oscillator as the clock source.
For example here are two results from a quick google.
http://forum.arduino.cc/index.php?topic=116404.0 "Since the internal RC oscillator is not as well regulated as one using an external resonator or crystal you may have to use a slower baud rate to make sure the bit times fall within spec. Maybe re-compile your bootloader for 9600 baud."
http://www.technoblogy.com/show?1YO1 "unless you need accurate timing, or are going to use the serial interface (which requires accurate timing), you don't need an external crystal and capacitors, because the ATmega328 has a built-in internal clock"
However, opinion seems to be split as to whether its acceptable/a good idea to use serial on an ATMega328 using the internal resonator. I do not currently have an Arduino board with me for the time being so i cannot test this out in person.
This brings me to my question. Despite the opinions that serial is unreliable, it seems no one has problems uploading code to an ATMega328 via FTDI when using no crystal (at least it hasnt come up in my searches). FTDI uses serial to upload so surely if serial is unreliable with a standalone chip, uploading via FTDI would not be possible?
I'm sure i am missing something but I was hoping that someone could explain this to me.