naively, i would say that the "for all z" clause in the formula which is used to derive the existence of the empty set, assumes we have a z. that is, the requirement of FOL that the domain of discourse be non-empty is equipotent to the requirement that some set exists. which is, in my non-expert opinion, a pretty big assumption. we assume that our logical systems (however we come up with them, and whatsoever rules we wish to assign to them) apply to "something", often with a "hand-waving gesture" towards common experience.
the simplest way i can think of to describe what we do, in fundamental terms, is we draw a distinction. in or out. this, or that. this idea of "not", allows us to re-create a variety of "forms". i mean...what do you mean when you say the domain of FOL is non-empty, unless you already have the idea of what emptiness and non-emptiness IS? which means you are already pre-supposing the empty set, and (at the least) a singleton. you can call them anything you like, but if you really want to start from scratch, you start with no-thing. calling no-thing a "thing", means we have a "some-thing". this rule of distinction comes bound up with two rules, so basic to our ways of thought, we don't even have good names for them:
1. "not not" is "is"
2. "is" is "is"
or: to cross and cross is not to cross; to call and call is to call (perhaps more familar as ~(~x) ↔ x and x ↔ x, or maybe 1+1 = 0 and a*a = a).
these are the basic rules underlying a boolean algebra, which we can call axioms/theorems/whatever, but at their heart are mysteries. we don't know why we think the way we do, but those are the rules we arrive at, no matter what clothes we make them wear. you can combine them neatly with a concept like alternative denial, but it appears that we are actually set up with dualism as a more natural way of seeing things.
one has to remember that the axioms of ZF are chosen, and chosen in such a way as to give particular meaning to nothing and something. each axiom gives us access to certain kinds of sets we want to have. we want to have subset mean something, so we need power sets, we want to have cartesian products, so we need pairs. we want to name sets by logical filtering, we want to be able to say that (at the very least) the natural numbers are a set (it would be counter-productive if they were not).
personally, i think that both first-order formal logic, and set theory are ugly beyond belief. i find deciphering them rather like trying to read a computer program written in machine-code. perfectly unambiguous, perfectly well-defined, and pretty much besides the point. the reason why they exist at all, as trying to serve as a basis for what we see as "true" seems quaint, to me. but that's just an opinion, i'm sure that plenty of people find things to admire in one, or the other, or both. i'm only interested in certain sets, and when i'm interested in larger things, most of those aren't even sets at all (i'm interested in the class of all groups, for example. i have a prefectly good idea in my mind exactly what this is, and it's not a set. too bad, huh?).