It is said that the $\{\}$ is the initial object of the $\mathcal{SET}$ - category of sets and functions.
By definition, it implies that for all $S \in Obj(\mathcal{SET})$ there is exactly one function $f: \{\} \mapsto S$. And that seems more or less all right to me - indeed, there is only one way you can define such $f = \{\} \times S = \{\}$.
The thing I can't get is why $\{\}$ isn't a terminal object? By the same logic, there is only one way to construct $g: S \mapsto \{\} = S \times \{\} = \{\}$.
What am I missing?
P.S. I know that any singleton set is a terminal object in the $\mathcal{SET}$. The question is not about it.
The point is that the subset $f$ of the cartesian product $A\times B$ (for an application $f:A\to B$) must check a property beginning with $$\forall a\in A,\exists b\in B \,\mathrm{s.t.}\dots,$$ so if $A\neq\varnothing$ and $B=\varnothing$, you can't construct a such subset since for a $a$ in $A$, we would have a $b\in\varnothing$, which is impossible.