Developers need to understand how the layer underneath their code works. If you're writing Java, you should understand the JVM. If you're writing C, you should understand the compiler.
Correct, which is why I was agreeing with you, but questioning the premise of a couple comments above yours. I.e., how far up the infrastructure stack should have developer the expected to know intimately?