Pointers are pretty foundational knowledge, even if you regularly use language with smart memory management.
C#, for instance, distinguishes between value types and reference types, which make a lot more sense when you understand pointers. I've found that knowledge pretty helpful on several occasions in my day job.
A lot of programmers don't know how computers work and don't care.
My son is a programmer & built his last two machines from the ground up.
Bad programmers you mean. Not real programmers.
At least a cursory low-level understanding is necessary for the craft, in my estimation.
That's so sad.
It should be mandatory to build some Flip flops and implement a clock in 1st semester.
A serial to parallel interface and vice versa.
Understand memory spaces and addresses.
First in theory, then with an soldering iron.
Build a computer from discrete components.
Something like this.
Every electronics technician with an 3 years apprenticeship can do this.
FFS they should at minimum program some low-tech robot in C or assembler. Or at least do something with an ATmega or similar.