A little self-plug: Here's how I do it:
https://github.com/oszi/dockerfiles/blob/master/_base/make-rootfs.shIt's designed to run in a container of the same OS (F23 can build F24) so it can be built anywhere...
Anyway, apart from systemd and locales I'm in favor of fat base images when an entire OS is needed. Because in the end not only it saves storage and bandwidth but also memory (same page cache).
What we should focus on is avoiding fracturization (everything built on different base images) and educating people that smaller is not always better.
So I don't think it's worth the effort to remove even dnf from the base images when it would/should include python3 either way.
We could also go down the rabbit hole and create a tree of base images starting with the bare minimum.
Is this also in the realm of the "layered images" project?
Just my two cents.
And for static binaries and unikernels there is no need for an OS anyway.