In my analysis of Doom Eternal the very high vRAM usage comes from setting the Texture pool size to be large. So the engine reserves space in memory called the"Texture pool" which is used for the textures being used to paint the geometry around you. Textures are streamed in and out of that pool somewhat predicatively and intelligently, so as you reach checkpoints in the map they know they can remove old/unused textures and stream in new ones for the area ahead, and the engine has a complex set of rules for managing this this.
The video setting Texture pool size literally controls this, when set high it equals 2048MB (2Gb) of vRAM and in Ultra Nightmare it's 4608MB (4.5Gb). You can confirm this by entering the console by pressing the `key (left of the 1 key) and typing "is_poolsize" and hitting tab to auto complete it, the number after that command is the current value set in MB. You'll see as you change the menu setting (and click save) you can see which each setting refers to in terms of real number of MB reserved for, just type the command again and auto complete it.
So the games high memory usage of at Ultra Nightmare preset (which sets Ultra Nightmare Texture Pool size) about 7GB total usage, largely comes from setting that texture pool to be max. And this begs the question what actual benefit comes from doing that? If you play the game and dynamically change the texture pool size from Ultra Nightmare down to High and you save yourself 2.5Gb of vRAM but you'll notice if you do this while in game that nothing has changed texture quality wise, side by side screenshots and gameplay reveal no texture quality improvement, which means at Ultra Nightmare quality all the textures you need in the space around you fit into a 2Gb texture pool size, what is the other 2.5Gb used for? Well we don't have tools to inspect what is happening inside that texture pool, maybe the developers do but I don't think there's a way to enable that.
Seriously just go play the game, set it Ultra Nightmare presets play it a load, then change the Texture Pool Size option in the video section to High and leave everything else the same. See if you can spot any difference. You can't. All you're doing with that high 4.5GB of pool space is reserving a load of memory to one side internally in the engine, it's not necessarily reflective of actual use, which is why memory constrained cards can run it just fine in most cases, because it doesn't actually need all of that.