are two different pairs of objects allowed to share the same morphism in a category? Normally I think of a morphism as belonging to two objects. e.g. for objects $a,b$ I think of a morphism $f$ between $a$ and $b$ as having the "type" $f:a\to b$.
But I can't see in the definition of category that a morphism has to be connected specifically to two objects.
Can we have a category with distinct objects $a,b,c,d$ where $Hom(a,b)\cap Hom(c,d)\neq \emptyset$?
example: we could have the morphisms be distances between objects where the objects are elements of a metric space. Then $Hom(a,b)= Hom(c,d)$ if $dist(a,b)=dist(c,d)$.
 A: It depends on the definition of a category. If a category is defined as a $6$-tuple $$\mathcal{C}=(\text{Obj}(\mathcal{C}),\text{Mor}(\mathcal{C}),\text{dom}_{\mathcal{C}},\text{cod}_{\mathcal{C}},\circ_{\mathcal{C}},\text{id}_{\mathcal{C}}),$$
where $\text{Obj}(\mathcal{C})$ and $\text{Mor}(\mathcal{C})$ are sets (classes) and $\text{dom}_{\mathcal{C}},\text{cod}_{\mathcal{C}}\colon\text{Mor}(\mathcal{C})\to\text{Obj}(\mathcal{C})$ are mappings, then all morphisms are disjoint and for objects $a,b\in\text{Obj}(\mathcal{C})$ we have the following definition of the $\hom$-set:
$$
\text{hom}_{\mathcal{C}}(a,b)=\{f\in\text{Mor}(\mathcal{C})|\text{dom}_{\mathcal{C}}(f)=a, \text{cod}_{\mathcal{C}}(f)=b\},
$$
so if $a,b,c,d\in\text{Obj}(\mathcal{C})$ and $(a,b)\ne(c,d)$, then
$$
\hom_{\mathcal{C}}(a,b)\cap\hom_{\mathcal{C}}(c,d)=\varnothing.
$$ 
Now if your definition of a category is a $4$-tuple $$\mathcal{C}=(\text{Obj}(\mathcal{C}),(\hom_{\mathcal{C}}(a,b))_{a,b\in\text{Obj}(\mathcal{C})},(\circ_{\mathcal{C},a,b,c})_{a,b,c\in\text{Obj}(\mathcal{C})},(\text{id}_{\mathcal{C},a})_{a\in\text{Obj}(\mathcal{C})}),$$
where $\text{Obj}(\mathcal{C})$ is a set (class) and $(\hom_{\mathcal{C}}(a,b))_{a,b\in\text{Obj}(\mathcal{C})}$ is a family of sets, then it may happen that
$$
\hom_{\mathcal{C}}(a,b)\cap\hom_{\mathcal{C}}(c,d)\ne\varnothing.
$$ 
Moreover, all $\hom$-sets may be equal. For example, if $X$ is a set, put $\text{Obj}(\mathcal{C})=X$ and $\hom_{\mathcal{C}}(x_1,x_2)=\{*\}$ (fixed one-elemented set) for every $x_1,x_2\in X$. Then for every $a,b,c,d\in\text{Obj}(\mathcal{C})$ we have:
$$
\hom_{\mathcal{C}}(a,b)=\hom_{\mathcal{C}}(c,d).
$$
Your example with metric spaces also works (for a metric space $(X,d)$ we should take $\text{Obj}(\mathcal{C})=X$ and $\hom_{\mathcal{C}}(x_1,x_2)=\{d(x_1,x_2)\}$; such categories are preorders where all elements are comparable; they are isomorphic to the categories from the previous example). 
However, we may define a morphism as a triplet $(a,b,f)$, where $f\in\hom_{\mathcal{C}}(a,b)$, which turns the latter definition to the former (this is a simple construction, described in Mac Lane's "Categories for the Working Mathematician" at the bottom of the page 27). So it is just a matter of convention.
