Modularity, compositions, and reusable/flexible kernels are strong design components. "Layers" are a straitjacket. I'm automatically suspicious of designers who invoke them, because they tend to have more to do with shutting down discussions than they do with designing. That's all.
By "layering violation" I really meant "layering" in a systems rather than a protocol sense. For example, it'd be a "layering violation" in this sense if your OS had a system call print_powerpoint_document(2).