> Use a smaller base image or libc
By default, Nix will build container images from scratch. No base image (although I guess you can add one as a layer to your manifest JSON, if you like).
> Make the image context smaller
Nix tracks dependencies very precisely. Our container images will only contain the things we asked for, and their dependencies (transitively).
> Fully minimize and tidy up image layers
This only seems relevant for imperative images, built "from the inside" (e.g. the talk about contents being "overwritten"?)
> Splitting up processes and services for breaking up images
The helper-functions in Nixpkgs contain tricks to automatically figure out which content is better kept in separate layers, based on how many times they're referenced (as a proxy for how often they'll be shared across containers). Docker only supports 128 layers, so the remaining content gets combined into the final layer; e.g. see https://grahamc.com/blog/nix-and-layered-docker-images