Different definitions of category It appears that there are two different definitions of category. Some authors require the Hom-sets to be pairwise disjoint. Eilenberg and Mac Lane in their original definition require each identity morphism of the category to uniquely determine an object of the category. But some authors (e.g. Kashiwara & Schapira) do not require such conditions in the definition of category. What is the reason for this difference?
Obviously this difference has practical consequences. For instance, take your favorite set (or class) $S$ and take your favorite group $G$. I will attempt to define a category $\mathbf{C}$ as follows: objects of $\mathbf{C}$ are elements of $S$, and for each pair of objects $(X,Y)$ of $\mathbf{C}$ let  $\operatorname{Hom}_{\mathbf{C}}(X,Y)=\operatorname{End}(G)$ (endomorphisms of $G$). Is $\mathbf{C}$ as defined above a category? It is not if we require the Hom-sets to be pairwise disjoint (or if we require each identity morphism of the category to uniquely determine an object of the category), but it is a category if we don't have such requirements in our definition of category. So why does this discrepancy exist? Historically, was there a reason for dropping this condition from the original definition of Eilenberg and Mac Lane?
 A: The difference is only cosmetic, not serious.  Given a category $\newcommand{\C}{\mathbf{C}}\C$ with not-necessarily-disjoint homsets, we can easily make its homsets disjoint.  Precisely, we can define a new isomorphic category $\C'$, with the same objects as $\C$ but with $\hom_{\C'}(x,y) := \hom_{\C}(x,y) \times \{(x,y)\}$.  Wrapping this up in a stronger statement: the category of “small disjoint-homsets categories” is equivalent to the category of “small not-necessarily-disjoint-homsets categories”.  (The “small” here is just to avoid complications of size issues.)
So no-one really worries about this question: it’s a matter of set-theoretic coding of structures, not a substantive question about the structures themselves.
Why might you want the disjointness condition?  So that you can see all hom-sets as subsets of a single set $\mathrm{mor}\,\C$ with well-defined domain and codomain functions $\mathrm{mor}\,\C \to \mathrm{ob}\,\C$.  In particular, this approach lets you say “a category consists of two sets, together with certain operations and axioms…” and so fits categories into the long-established setup of algebraic structures.
Why might you want to drop the disjointness condition?  Because for many important categories, the most natural presentation gives non-disjoint homsets.  E.g. $\mathbf{Set}$, with morphisms as functions, has $\mathrm{hom}(\emptyset,X) = \{\emptyset\}$ for every $X$, due to the set-theoretic representation of functions as sets of ordered pairs.
