The mapping $(X, Y) \mapsto Hom(X,Y)$ is a functor $C^{op} \times C \to Set$, (where $X, Y$ are objects of $C$) not $C \times C \to Set$. This is how you get functoriality (what you called the bifunctor axiom). To be more precise, if $f, g, h, i$ are morphisms in $C$, such that both $gi$ and $hf$ exist, and $f^*$, $h^*$ are the reversed morphisms in $C^{op}$, we get:
$$
F( (f^*,g) \circ (h^*, i)) = F ( f^*h^*, gi ) = F( (hf)^*, gi) = gi\circ - \circ hf,
$$
which is postcomposition by $gi$ and precomposition by $hf$. This mapping
acts on $\phi \in Hom(X, Y)$ by $\phi \mapsto gi\phi hf$.
On the other hand,
$$
F(f^*, g) \circ F(h^*, i) = ( g \circ - \circ f ) \circ (i \circ - \circ h)
$$
These mappings act on $\phi \in Hom(X, Y)$ by:
$$
( g \circ - \circ f )\Big[(i \circ - \circ h)(\phi)\Big]
= ( g \circ - \circ f )[i\phi h]
= gi \phi hf.
$$
Thus,
$$
F( (f^*,g) \circ (h^*, i)) = F( (f^*,g) \circ (h^*, i)).
$$
Hope this helps!