You can use the nBOOT0 option byte to override the value on the pin. Otherwise, you need to ensure it's low or high, depending on your intention.
It should be low if you want to run user code. Whether you do that with a pulldown resistor or an FPGA pin is fine. However, you need to ensure it's low when the STM32 is booting up. The best way to ensure this is an external resistor on the line.
Pulling it up will run the bootloader on startup, rather than user code.
Leaving it floating leads to undefined behavior (unless overridden with option byte mentioned above).