Arduino bootloader

I presume when the RESET is taken low, the Arduino resets and starts running the special bootstrap code which, amongst other things, uses pins D0 and D1 for serial transmissions so that you can then upload new user code.

That also means that in the user code we are free to use D0 and D1 as we please , and it will not affect the bootloader in any way, since after the RESET is pressed those pins will return to the control of the bootloader.

But it also means that we must be careful how we wire those pins because if for example we permanently pull them high via an external resistor, or if we connect them to an especially low resistance, we will affect the serial communications from then on.

Am I right in all the above?

Yes, yes and yes.

Thank you.