Higher category theory tells us that it is a bad idea to identify isomorphic things. Rather, the isomorphism should belong to some additional data. Also, categorification tells us that one should, whenever possible, look at a category directly, not just on its set of isomorphism classes. These are two well-known and accepted principles, right?
However, the definition of a subobject seems to contradict these principles. Why should two monomorphisms be identified with each other when they are isomorphic? What is wrong with the following definition: A subobject of an object $B$ is a monomorphism $A \to B$. With this definition, you can do categorical algebra as usual. It also works nicely in examples. For example, a subring of a ring $B$ is just an injective homomorphism of rings $A \to B$. I think this is more abstract but also more natural than the usual set-theoretic definition; for example with $\mathbb{C}=\mathbb{R}[x]/(x^2+1)$ it is not correct that $\mathbb{R}$ is a subring of $\mathbb{C}$ in the set-theoretic sense, but rather in the sense defined above, via the canonical homomorphism $\mathbb{R} \to \mathbb{C}$. For what purpose should I now look at the class of all monomorphisms $\mathbb{R} \to \mathbb{C}$ isomorphic to that? (This is a bad example since there is only one homomorphism $\mathbb{R} \to \mathbb{C}$ anyway, but I hope that my point is clear. Otherwise consider $\mathbb{Z}[i] \to \mathbb{C}$, $i \mapsto \pm i$.)