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!