Layering violation

A competent but inexperienced programmer once asked a visiting teacher a question.

“I have often heard you advise that a programmer should not only talk to his boss but also his boss's boss, but I do not understand. Surely this is a layering violation?”

The master asked a question in turn. “You usually program in C++, but you also know some assembly language. Correct?”

“I know a little assembly language, but I use it far less often than C++.”

“Why is that?”

The novice thought for a moment. “Sometimes I discover bugs in my C++ compiler, and can only confirm them because I can check the compiler's output. Sometimes the compiler produces inefficient machine code, and I can make my program faster by talking directly to the hardware.”

The teacher turned and left.