The way Marlin works is if the EEPROM is enabled, it fetches all its values from the EEPROM. So, when you first turn on the EEPROM capability, you need to do a M502 to load the values specified in the Configuration.h file instead. And then save those to EEPROM with a M500. At this point you can just tweak any value you want changed without re-building and uploading the firmware.

This new command M499 just loads a version number that can never happen into the EEPROM. So when Marlin powers up, it checks the firmware version number and compares it against the data version in EEPROM. There will be a mis-match and Marlin will default to using the Configuration.h settings until a new data set is saved in the EEPROM.