I'm guessing it's a lost art because available system memory is much larger and many programs are written in other languages these days.
This is true, but locality also matters a lot more these days. Minimizing padding keeps more of your structs in a single cache line. That means doing this not only makes your program use less memory, but it can also be faster, in some cases significantly.
> many programs are written in other languages these days.
True, but most of those languages or their VMs are themselves written in C, so it still matters at some point. :)