Good intentions: Forcing code into libraries to cleanly separate layers.
Reality: Making libraries circularly-dependent because layers are difficult.