That's unfortunately not a reasonable way to implement it; Bluetooth file transfer is very unreliable and this has a great risk of "bricking" the MBB or BMS or anything else requiring an update.
Agreed. Even for a robust, wired connection, you really need to download the whole image, verify its integrity via 32-bit CRC or something even more rigorous, THEN it's reasonably safe for the device to reprogram itself with the new image. Even if the bootloader doesn't overwrite itself, and is probably still intact, you still probably need at least some degree of functionality in the app to invoke the bootloader again so you can re-try. If the bootloader does "upgrade" itself with a bad image, you're completely out of luck...only a low-level reprogram is going to restore function.
All of which gets much riskier when using any sort of wireless connection. WiFi is very good at correcting bad transmissions because it's designed to transfer data files back and forth, but bluetooth isn't nearly as good....it's designed for microphones, earbuds, that sort of thing, where an occasional bad packet isn't life-threatening. But even with WiFi, errors are far more likely than with a wired connection, so it's even more critical to follow the protocol above....download the WHOLE image, verify the living crap out of it, THEN burn it. Anything else is just asking for trouble.