The arguments against layer violation tend to be pragmatic -
certain types of layer violation (such as "content based routing")
could lead to complex failure modes - others (such as diffserv peeking)
are probably safe. It certainly shouldn't be a religious principle.
as much as I carp about things that violate layers, even I have to agree
with that. layer violations are occasionally useful, beneficial, and even
necessary. but the criteria for knowing when they're a good idea are
not widely understood.
Keith