The fact that any functors which is fully faithfull and essentially surjective is an equivalence of category is equivalent to the axiom of choice.
Without the axiom of choice, Makkai has introduced the notion of 'anafunctor' which generalize the notion of functors and provide inverses for the functors which are essentially surjective and fully faithful.
In fancy words, his definition can be formulated as follow: The category of categories is a Brown category of fibrant objects, with fibrations being the isofibrations and weak equivalences being the fully faithful and essentially surjective functors (trivial fibrations are hence the functors which are fully faithful and surjective on objects).
Anafunctors $X \rightarrow Y$ are then spans $X \leftarrow Z \rightarrow Y$ where $Z \rightarrow X$ is a trivial fibrations, and we know by the work of Brown that homotopy class of such spans compute the localization of the category of categories at 'weak equivalences'.
In a more down to earth approach:
The idea of Makkai is that an anafunctor is like a functor but where the image of an object is not uniquely defined, but, following classical categorical philosophie, only well defined up to unique isomorphism.
More precisely: If $X$ and $Y$ are (small) categories, an anafunctor from $X$ to $Y$ is the data of:
-A set $|F|$ and a surjective map $\pi: |F| \rightarrow |X|$ (where $|X|$ denotes the set of objects of $|X|$).
-On consider $F$ as a category over $X$ such that $\pi$ is extended into a fully faithful functor $\pi:F \rightarrow X$ (i.e. $Hom_F(a,b):=Hom_X(\pi(a),\pi(b))$.
-One has a functor $f$ from $F$ to $Y$.
This fits the idea explained above as follow: if you have an object $x \in X$, you compute its image by $F$ by taking any $z \in |F|$ such that $\pi(z)=x$ and taking the image of $z$ by $f$. If one chose of a different $z'$ then there is a unique isomorphism between $z$ and $z'$ which is send to the identity of $x$ and this induce a canonical isomorphism between $f(z)$ and $f(z')$.
I refer to the paper of Makkai linked above for how anafunctor are composed as it is not relevant to the question...
The only thing we need to know here is when two anafunctors are isomorphic (equivalent): Let $F$ and $G$ be two anafunctors from $X$ to $Y$. One can construct a category $F \times_{X} G$ whose set of objects is $|F| \times_{|X|} |G|$ and whose morphisms are the morphism between the projection in $X$. One then has two functors from $F \times_X G$ to $Y$ given respectively by $f$ and $g$ composed with the projection to $F$ and $G$.
An isomorphism of anafunctors is given by an isomorphism between these two functors from $F \times_X G$ to $Y$.
This definition solves a lot of problems that one has when doing category theory constructively (fully faithful and essentially surjective functors becomes invertible as anafunctors, every category with binary product admit a "product anafunctor" etc...) The problem is that in general there is a proper class of anafunctors between two small categories !
Makkai proved that under some set theoretical axiom there is a set of equivalence class of anafunctors and hence that one still get a locally small category.
My question is: is it known that in ZF it cannot be proved that there is only a set of isomorphisms class of anafunctors between any two small categories, and not a proper class ?
The motivation for this question, is that the failure of this "smallness" automatically proves that a lot of classical model category structure cannot exists in ZF, and always require extra axioms (like COSHEP or the axioms Makkai introduce at the end of his paper) because localization of model category structure are always locally small. While this fact is commonly believed I've never been able to actually prove it...