In some other games, these are saved in some INI, CFG, or JSON files
yes, that's (somehow) true for factorio too and not only in one format,
but all of these three formats plus additional DAT files ... :-) :-(
a while ago i found some such files at different locations, but in the meantime some seem to have changed, like different locations, different format, no longer readable/editable, etc :-( and all this could be more or less different for windows, mac and linux ...
but here is what i see NOW in windows (installed on this computer first under 0.15, now 0.17) :
player-data.json (in the factorio directoy) holds data about which levels and tutorials are accessible as well as the login data to update factorio and mods
achievements-modded.dat (in the factorio directory) are the local achievements (non-readable) in modded games or without steam, including achievements added by mods. they seem to be (partially?) synced with steam achievements when playing (or even logged in in the background??) to steam.
and then (depending on a config file in the factorio directoy) either in a factorio (sub)folder or in appdata: lots of other files (maybe some are remnants from old factorio installations) like the blueprint library, or in a subdirectory config one single important file named config.ini (typical readable INI format) with lots of settings like options, keyboard shortcuts, etc. maybe there is also a section about mod hotkeys that will be reset (deleted) when factorio or enabled mods change since that is the easiest method of cleaning up sections in ini files and not keep unused values around forever ?
and finally there is a file "mod-settings.dat" in the mods directory itself which is binary and thus not easy (or even impossible) to edit somehow.
because of these differences, probably the mod settings are kept forever while the mod hotkeys are wiped quite often?
btw: in that config.ini there is a value for autosave-interval as well as for autosave-slots. i set it on some old version and the value is still in the config, although recently (in 0.16 and 0.17) there was no such setting for slots ingame. i have to see whether that value is still respected, but i liked to have it at 9 (for autosave1.zip through autosave9.zip), to get up to 18 minutes worth of autosave (instead of default 3 slots for only 4 minutes when bad luck strikes) when using an interval of 2 minutes only.