Because typically you'd be building `five` out of `zero`, but that's more of an "implementation detail" rather than a property of `five` or `zero`. Examples are numerous:
i. Peano Axioms: (Typically) your initial element is 0 and you'll get 1 by applying the successor function to 0 and 2 by applying that to 1 and so on.
ii. Von Neumann's definition of Ordinals: {} is zero and one is {{}} and two is {{}, {{}}} and so on.
iii. Conway's definition of Surreal numbers: {|} is zero and { {|} | } is one and so on.
iv. Church encoding
and many more.
P.S. I'm not a logician and don't know whether "more of an abstraction" has any well-defined meaning and not just the meaning that might be inferred by a software developer.