Quick summary: there has recently been some speculation about new subraces based on four new entries in ChrRaces (27, 28, 29, and 30). What follows is a logical and technical analysis of what those entries really mean.
Reasons For Assuming These are New Subraces:
- Character Screen FileDataIDs are set. 2 are for Horde, 2 are for Alliance, and they're not immediately obvious which would be which, implying some sort of conscious decision at work.
- Default ClassIDs are set.
- Neutral RaceIDs are set, falling back to the original (Tauren, Draenei) in two cases. Why they aren't set for the other two is unknown.
- Blizzard stopped caring about adding NPC race entries a very long time ago (the last one was early Wrath) since the only impact was appearance swapping.
- None of the new ChrRaces are used in-game on a creature except Lightforged Draenei.
- The new ChrRace entries appeared in the first build of Patch 7.3.0, but there are almost zero new Nightborne or Highmountain Tauren in Patch 7.3.0.
- Creating a race entry (Void Elf) for a single creature (Alleria) would be very strange. It's fair to say it would be unprecedented.
Reasons Against Assuming These are New Subraces:
- ChrRace Flag 0x1 is set for all four entries. When set, 0x1 designates unplayable races. It's worth noting that it is possible that they set this flag to prevent the race from showing up in Character Creation and other areas (as a return from 'GetAvailableRaces()').
- ChrRace Faction is set to 2 (Neutral) for all four entries. This is consistent with all other NPC types.
- The first two of the data-based 'Reasons For' can be explained away as a result of copy and paste from existing entries. Blizzard loves to copy and paste from existing material before modifying it. Once I realized this I almost considered removing them, but people would probably point it out excessively if it wasn't there.
- There are no CharBaseInfo entries specifying race-class combinations for ChrRaces 27-30.
- Data in other database files is placeholder and inconsistent with being playable races. As one of many examples, CharHairGeosets has entries for NPC-only ChrRaces, but just a single row for each gender. Playable races have tons of rows in CharHairGeosets with all of the possible combinations. However, ChrRaces 27-30 only have 1 row for each gender, as if they were simply NPC races.
- The data left behind is not consistent with something complete yet hidden. This is tricky to explain but ties into the last couple of points. In short, when Blizzard scrubs data, they do so by reference. They would rely on triggers of foreign keys to update tables where entries are deleted. For example, they would delete something key to the existence of the race, something like... well, the ChrRace entry. Doing so would trigger a cascade of removals across the entire database. The first key removed would be the ChrRace one. Then CreatureDisplayInfoExtra have entries ripped out because of its 'Display RaceID' column. Then CreatureDisplayInfo entries would be ripped out because they were missing a CreatureDisplayInfoExtra entry. As a result of how this works, for a database like BarberShopStyles to have no data for Races 27-30 is extremely odd (and for the other ones to only have 1 style, like NPC races). The only thing that ties BarberShopStyles to something else is ChrRaceID, and we know that ChrRaces wasn't scrubbed if these were intended to be removed. Basically, it's weird that some databases don't have data even though they were only linked through a reference that wasn't scrubbed. This is not a smoking gun that these are only NPC races, but if they are intended playable subraces, then they were in a very early state of development on Blizzard's end.
It is worth noting here that, even if going off ChrRaces is completely wrong, some of this may be accidentally correct. For example, I'm pretty sure the next expansion will feature subraces, and I'm pretty sure Lightforged Draenei will be one of them. There's both logical and technical reasons why this will likely be true.
Also, one last point... I debated putting this in both sections at different points in time but it probably just belongs as a disclaimer: if this is true, it's a huge blunder by Blizzard. When merging in entries from a beta branch to bring over fixes or whatever, they would filter out a lot of the beta-only stuff by hand, most likely. It's forgivable they didn't realize what had happened when they stripped out KulTiras and Zandalari from ManifestInterfaceData, especially when they had also just stripped out the encrypted files from that same database, so the change could have slipped in with one that they did want to happen. However, ChrRace rows contain easily read string data, unlike ManifestInterfaceData which is pure FileDataIDs and file paths. If they didn't check the changes for that and realize that the word 'Void Elf' is something that was a bit out of place (especially when it was only one of four additions to the file), then, well, like I said, it's a huge blunder.
TL;DR: there is compelling evidence for the existence of these four new ChrRaces to be a sign that they will be playable subraces, but when considered in a broader context there is some doubt.