Tricks for packing data are still relevant today, though obviously hardware has changed so the tricks are different. One important concept on today's machines is that memory latency is huge relative to the cost of executing other instructions (eg: arithmetic, logic). In some senses, such packing has become even more important as time has gone on. There was a point in history when memory operations and ALU operations were about the same speed, so it made sense to keep even small computations in memory, and retrieve them later (eg: a lookup table, possibly pre-computed). Nowadays, it is often faster to re-compute values from scratch when needed, rather than going to memory, even for biggish computations.
In today's world, the GPU largely deals with textures, but the same rule holds — it can make sense to compute values rather than doing texture fetches. Anyway, I'd say your instinct is right — developers are still using lots of tricks to get things where they are. There is still a lot of competitive pressure to provide more, more, more and squeeze the most out of the hardware.
All that said, the 100GB download is often going to be audio/video. Then probably textures. There is certainly standard compression going on for a lot of that. But not the sort of manual "these texels go here, those texels go there" fiddling of data like described in this article. Though UV unwrapping is still and art and a science (:
Data compression is really good these days, and there are file formats and compression strategies that are optimized for gaming. The specific technique being used here is still used in 2D games, but there are spritesheet optimization tools available to do it automatically.
My understanding is that for the biggest games there's an intentional tradeoff to use more storage in exchange for faster load times, although the need for that has apparently lessened over time. If you go back and look at some of the big multi-disc games of the late '90s/early '00s you might be shocked by how much duplication there was in order to reduce the need for disc swapping. (You might also be shocked by how much of that disc space was required solely to support pre-rendered cutscenes.)
Part of the size problem in the last generation was because of duplication of assets to load faster from spinning hard drives. They bundled assets for level loads sequentially because it's quicker to have all the assets inline instead of seeking all over the place.
I imagine when the HDD-era engines are end-of-lined we'll get a slight shrink, but it'll probably be eclipsed by the growing number of high resolution assets pretty quickly.
In today's world, the GPU largely deals with textures, but the same rule holds — it can make sense to compute values rather than doing texture fetches. Anyway, I'd say your instinct is right — developers are still using lots of tricks to get things where they are. There is still a lot of competitive pressure to provide more, more, more and squeeze the most out of the hardware.
All that said, the 100GB download is often going to be audio/video. Then probably textures. There is certainly standard compression going on for a lot of that. But not the sort of manual "these texels go here, those texels go there" fiddling of data like described in this article. Though UV unwrapping is still and art and a science (: