This is probably a misunderstanding.
The bootloader in STM32 is not intended to load a program from an external I2C memory into its internal memory and run it from there, as is the case with some SoC.
The bootloader in STM32, when run (subject to pin and configuration bit "patterns"), waits on its peripherals until an external master starts to "talk" to it, and then through this channel, the external master "burns" program into STM32's internal FLASH.
In other words, STM32 is *slave* in bootloading, whether I2C or other ways.
JW