Because under the hood XC8 is still separate compilers for baseline/mid-range (PICC) and high-end (PICC-18), and the eeprom qualifier was never implemented in PICC-18.
The function and macro were in PICC-18 back in HI-TECH days so I can't answer your second question but it's likely "a directive came from Management (demanding something impossible) that meant PIC18 EEPROM support was sacrificed".
Here is Jeff's (mad_c) explanation in Post #9: https://www.microchip.com/forums/FindPost/927851
There also are responses to the issues.
Quoted that Post #9 here:
Adding support for the eeprom qualifier and to store such objects in EEPROM is relatively easy. The problem is that if the unthinkable should happen and the programmer actually write an expression that involved reading or writing those EEPROM objects. Such access requires routines to be called, and the problem with the PIC18 devices is that there are so many different routines that need to be present, maintained, and expanded with the release of new device families. Many devices did not have routines available, and since MCC would provide these routines in future for general access, the compiler's PIC18 EEPROM routines were dropped and the ability for the eeprom qualifier put on hold. The situation is less of an issue for mid-range devices, so the compiler currently maintains its own routines and the qualifier can still be used.