I think he should also investigate at what frequency is the microcontroller running? Maybe he's running it at 16-24 Mhz, while it could work at 1-2 Mhz or even lower and use less than 1mA of current.
As for eeprom, no need to erase or initialize it, makes no sense. By default, the memory is either 0 (0xx) or 255 (0xFF) and you can program it when you program the microcontroller for the first time. ( or, you could add a tiny pad or something on the circuit board that, when connected to ground and you start the light, it does the eeprom erase once)
You can reduce the eeprom "wear and tear" by spreading the writes across a larger part of memory.
For example, if the data you need to store in memory is 2 bytes, then you can use 3 bytes for each record, and store the last 16-32 records in 96 bytes, leaving you the other bytes for other settings. That one byte you use to keep track of which record is the last and all that, for example just use numbers between 1 and 254 (because 0 and 255 tell you it's unused eeprom memory)
So at boot, quickly read up to 32 bytes (one byte per record) to determine which is the newest measurement and which is the oldest, then read the 2 bytes associated with the newest record .
When you want to write, you overwrite the oldest measurement or use some of the unitialized memory (which you detect by reading 0 or 255 in those header bytes)