Other parts can do this, just not the 10F.
EEPROM can store variables just fine, each byte can be written individually and the write endurance is very high. However, most parts have a very limited number of EEPROM bytes. On any part which has self-programming, you can write the program space. It's got a more limited write endurance however, and MUST be b-written; an entire block must be erased and written at once. If you only need to change one variable, you'll need to copy all the values in that block to RAM, erase it, and write all values back. This is kinda risky since a power glitch or whatever could cause the block write to fail and corrupt all the values in that block.