Image size is a discipline nobody enforces for you. Our first worker image was well over a gigabyte because I copied a Dockerfile off a blog post, and nothing in the build output suggested that was unusual. The layer cache is the other one, since reordering two lines can turn a 20 second build into a four minute one, and on a cache miss I want it to tell me which layer invalidated and what changed rather than leaving me to diff it myself.