EEPROM being both "programmable" and "read-only"
Although they both involve changing the contents of memory, writing and programming are not the same thing.
Writing is done with the chip connected to the processor, during a normal processor cycle, and using normal voltages.
Programming involves conditions that are not normally produced by a processor. There may be a need to erase the memory first (possibly using ultraviolet light). It may require higher voltages. It may be more convenient to remove the chip from the circuit and program it with dedicated programming equipment. In most cases, the programming process takes much more time than a regular memory access. The bottom line is that a normal processor write cycle is not adequate to program a chip.
RAM can be directly written by a processor. There is no need to program RAM.
Masked ROM can neither be written nor programmed.
However, the various types of PROMs can only be programmed. A normal processor write does not generate the conditions needed for programming, so PROMs cannot be written.
Mask ROM. In Mask ROM, there is no reprogramming. Conceptually, 1's are directly connected to VCC and 0's are directly connected to ground with metalized areas in the construction of the IC. But you literally need to alter the design of the chip and make new chips to change it. So if you commit executable code to mask ROM and then find a bug, you have to make new chips to fix it.
Old-style EPROM (erasable programmable ROM). UV erasable programmable ROM. The chip has a transparent window on it. You uncover the window, put it in a UV chamber and expose it to UV radiation to erase it. Then you cover the window, program it using a special programmer. After that it is effectively read only memory (ROM) unless you erase it again, which usually cannot be done in-circuit.
EEPROM. Electrically Erasable Programmable Read Only Memory. Some kind of special step is required to erase it and program it (possibly high voltage) and then it can be treated as ROM. Usually it is possible to erase/reprogram in circuit if desired, but there is also usually a write-protect pin. If you disable writing via the WP pin, this can be treated like ROM in the sense that the only way to reprogram it is to remove the IC from the circuit.
OTP flash. One-time programmable flash is rated to be erased and programmed only once. After that it can be treated like ROM. Sometimes it is programmed prior to PCB assembly and sometimes after. Losing memory contents during reflow oven exposure could be a concern.
This is just off the top of my head.
I feel that the confusion comes from the fact that a clearly writable memory is called read-only in its name.
The resolution of the paradox: these memories contain data, which is not or just rarely intended to be changed, and they operate as ROMs for most of the time. Changing the data in them often require special conditions (UV light, high voltage) and relatively long time.
For example a flash memory is similar to an EEPROM in the sense that it can store the data without external power, but mainly due to its easy writing procedure it is not called ROM.
As it often happens with naming, there are no strict rules, what device falls into a given category and it is often influenced by the marking efforts of a new product.