Embedding is a reasonable reason to want to exclude zlib, and I’d argue more realistic than some hypothetical bootstrapping environment.
But I’m okay with the default behaviour being to fail if you don’t have it, and require an explicit option to continue without. Perhaps it’s a good opportunity to ensure all references to it are in one place (presumably zlibmodule.c?) and that module is the only thing included/excluded. We ought to be able to relatively easily turn builtin modules on and off in very few locations.