Regarding the topic title there are three levels of that discussion.
First, you probably mean HAL/Cube team's implementation of EEPROM emulation. Obviously that is a broken bloatware, because everything done by that team is like that.
Second, emulating an EEPROM in many cases is just a stupid design. Most of the projects use it for storing user configuration. But think about it. On hardware side you have an MCU's internal FLASH memory with it's features and peculiarities. On software side you have a requirement to store the user configuration, which consists of a variables of a different and probably even varying size. Why on earth would you want to store that data in something that emulates a hardware EEPROM with a different set of features and peculiarities than your actual hardware memory? The most obvious of those limitations is the fact that EEPROM is an array of a constant sized elements with a size up to 4 bytes. Why emulate that, when you can develop something more flexible and better fitted to the task?
Third, a properly designed configuration storage system has some advantages over external memories:
- The board can use less components, MCU pins, board space and cost less.
- With readout protection on MCU, the configuration cannot be read or written by external tools.
- Accesses to internal memory can be faster than accesses to external memories.