https://github.com/ARMmbed/mbed-os/blob/master/drivers/FlashIAP.cpp#L56
FlashIAP is designed to be a singleton. Hence FlashIAP::init() should be able to be called multiple times from multiple places without issue.
The current implementation exposes the HAL behaviour to the user and behaves differently on different platforms. K64F would succeed while STM32 would fail with multiple calls to FlashIAP::init()