Is there a historical reason? Since it is rewritable it isn't read only by definition, so why call it so?
Look at the development:
ROM = read-only memory = can only be read when on the board, programmed in the chip factory.
PROM = programmable read-only memory = can be programmed with a special programmer, but read-only when on the board.
EPROM = erasable programmable read-only memory = can be repeatedly programmed with a special programmer, after erasing it with UV light, but read-only when on the board.
EEPROM = electrically erasable programmable read-only memory = can be electrically erased with higher voltages (no UV light needed) in the programmer, but read-only when on the board (because erasing and re-programming mostly isn't done on the board).
So they all serve the same function: read-only memory on the board. Just the means of programming and erasing is different.
Also, erasing an EEPROM takes on the order of minutes, and could originally only done completely - much too slow and too impractical for actual storage.
"Flash ROM" was given this name because it was very fast to erase, so it made sense for the first time to do this during actual usage.
EEPROM can't be "written to." It can be programmed. Programming is different.
When there's EEPROM in a CPU's physical address space, ordinary write cycles will not affect it. Something out of the ordinary has to happen in order to change the EEPROM's contents. The oldest PROMs and EEPROMs had to be physically removed from the system and programmed in a special device that used special voltages and special signaling to change the device content.
More modern parts can be programmed in-circuit, and using normal voltages, but the programming still uses different signaling and maybe different pins from the normal memory bus interface.
It can't be 'written to' in the sense of storing useful information written by a running program in the computer.
It can be erased and re-programmed, which generally requires a special ROM programmer (rather than erasing and rewriting in place).
So, the readonly-ness is from the viewpoint of the computer in which it's used.
These days the line between that and something like flash memory had grown blurred, but things get named when they're first invented.
RAM is designed to be quickly written many trillions of times without wearing out. Flash and EEPROM devices, by contrast, are designed to be quickly read many trillions of times without degradation, but writing will be orders of magnitude slower and impose significant wear; an EEPROM device that can reliably endure 10,000,000 write operations without wearing out would be regarded as having unusually high endurance; 10,000 writes would be more typical.
On the original ENIAC computer, RAM was implemented with vacuum tubes, and "ROM" was implemented with many rows of manually-operated rotary switches. The computer could instantly change the contents of any RAM location automatically, but the only way ROM would change would be if somebody physically went up to the knobs and rotated them. Converting from ROM to EEPROM would have been equivalent to adding a bunch of solenoid-operated mechanisms that could rotate the knobs under program control.
In terms of evolution, once computers started having enough RAM that they could receive input from a punched-card reader and copy it into RAM, ROM was used for things that would need to be changed less often, and thus often took forms like boards a grid of junctions where diodes or transistors could be installed or omitted, or groups of magnetic cores through which wires could either be threaded through or around. The former approach evolved into semiconductor programmable ROMS which would behave like a fully populated grid of transistors, but each transistor had a small fuse in series with it. Turning on a transistor and then applying a suitable power pulse to the output would blow the fuse.
Later semiconductor programmable memories replaced the fuse with a second transistor which was switched on and off by implanting charges in its gate. This allowed the memories to be smaller (there was a limit as to how weak fuses could reliably be made without spontaneous failures, and the transistors and other wiring had to be made much stronger than the fuses). The gates effectively had diodes in series with them, so charges could be implanted but not removed; exposure to ionizing radiation such as UV light, however, would dislodge the charges.
Still later advancements made it possible to electrically drain off the charges from the gates, but the devices still needed unusual voltages to be applied in order to do this. Modern devices have internal circuitry that will connect the internal memory bus to an external memory bus when not performing write operations, but which can disconnect from the external bus and apply unusual voltages to the internal bus when necessary to store or erase information. Although such devices no longer require the exotic external hardware that was necessary to store information into older devices, their essential nature is much as it always had been: reads are processed using ordinary transistor switching, while writes require a much slower and more stressful process.
I will give you an answer from a programmer's point of view:
An EEPROM is called a ROM despite being writable because its INTERFACE is that of a ROM.
In other words, from the point of view of your board, and from the point of view of software running on the board, it is memory that cannot be written to, therefore it is ROM.
The fact that we can actually power off, plug it out, reprogram it, plug it back in, and power back up, is an implementation detail, and it is hidden from the concerned parties: neither the board, nor the software, are alive to witness this happening.
I agree with what people are saying here, but the answer is not perfectly clear. To say that you cannot write to an EEPROM but only program it, is a bit odd. The datasheets for the EEPROM list how many write/erase cycles the EEPROM is rated for. They call it write.
A good example that comes to mind is an Arduino UNO. The EEPROM is not set by the factory and you write to it to as needed. It's common to use it to maintain state between power cycles, set things like ip address, urls, etc. that you want to maintain as data and not hardcode it. However, it's only rated at 100K write/erase cycles. So it is not intended to be used for short-term data storage.
I think the point is that ROM is designed to be written to rarely and RAM is designed to be written to often. Plus, EEPROM will degrade over time. I think between 100K to 250K write/erase cycles most EEPROMs are rated for. So you should use it as long-term storage.
My idea here is that the naming follows schematic and physical principles regarding information storage and its evolution over the time.
Original static IC RAMs had a latch (two invertors feeding each other) that stored a single bit, counted at least 4 transistors for storage and at least 2 transistors to read and write the bit.
Original IC ROMs (mask ROMs that have their contents fixed at manufacturing time) consisted single transistor (or an absence of it), and the data was probed by an attempt to open that transistor by feeding its gate with a 'ON' voltage. Depending on its presense and ability to turn on (=pull the wire to GND), a stored data bit was retrieved.
PROMs and EPROMs had two-gate transistor per each addressable bit: one gate was isolated and carried a charge, other worked the same way as in ROM. By changing a charge on an isolated (or floating) gate, one can make it open or not when a voltage applied to the other, control gate, thus (E)PROMs worked exactly the save way as ROMs, but with the ability to electrically program (and maybe UV erase) data.
Later, EEPROMs and FLASHes added the ability to electrically erase those two-gate transistors.
Thus, the naming of something-ROMs depends mostly on a tradition of calling them so.