> Let's say that later when some event happens, i want to replace that value with 0x00112233...
Then you have to erase the whole flash BLOCK and then rewrite all the data again, together with your changed value.
EEPROM allows byte erase. FLASH is cheaper than EEPROM because it requires the whole block to be erased.
Just because the routine didn't return an error code doesn't mean it didn't get an error, but it may have bugs that mean the errors aren't checked or aren't reported back. The "normal" address for a flash erase command is the base address of the block. Maybe the function you're using doesn't expect the "wrong address" to be passed in and doesn't check for that condition.
If you want to change individual locations, then you need some "EEPROM Emulation" software that provides functions that seem to allow individual reads and writes, but behind the scenes is storing "master" and "diferences" and is handling block erases and data copies.
Someone asked for this here in 2007, and nobody has answered yet:
https://community.freescale.com/thread/36134
Tom