Does anyone know if it is possible to create a hardware configuration for an F1 chip in which a USB to serial chip is (permanently) connected to the F1 chip for use programming and debugging, but where the user does not need to toggle boot pins to use their programmed chip (like an Arduino Nano)?

This functionality is present in (e.g. Naze32) F1 flight controller boards. To update the firmware you simply open the Cleanflight Configurator, plug in your board via USB and click flash. There is no need for the user to toggle boot pins and the permanent UART bootloader is definitely used.

On the schematic I cannot see anything special surrounding the CP2102 USB to UART bridge. Both BOOT0 and BOOT1 are pulled down, which as far as I know should allow booting into firmware but not flashing.

2. It sets a flag and then resets itself to run the bootloader. It resets itself because bootloaders often assume that nothing has been initialized (ie, no interrupts, watchdogs, etc) and resetting is the easiest way to get back to clean slate. The flag is often some magic value in RAM or in a register that is guaranteed to survive a soft reset.

As Roger mentioned, it's convenient to enter the bootloader without fiddling with the pins, but you should make provisions for recovering for that 1 in 50 times you mess up and flash completely broken / wrong firmware onto it. The schematic that you linked has a jumper on BOOT0 so that it's still possible to manually trigger the bootloader without working firmware.