For sheaves, $f_*g_*=(fg)_*$ is equality, but $g^*f^* \cong (fg)^*$ only canonical isomorphism I wonder why do one cares that pushforward of quasicoherent sheaves satisfies equality $f_*g_*=(fg)_*$, but for pullback there is only canonical isomorphism $g^*f^* \cong (fg)^*$?
I believe that the fact follows because $A \otimes_B C \otimes_C D \cong A \otimes_B D$ is only canonical isomorphism, not equality. The fact is mentioned in Vistoli's Grothendieck's FGA explained, 3.2.1 as $QCoh$ is a natural example of pseudo-functor. Thus another side of the question: why is it only pseudo-functor, and does one really cares about it (or is it like set-theoretic problems: one can always solve them, unless doing something really stupid)?
 A: It seems to me that the question essentially contains its answer. One would care about the differences, if one cares to know what things are!
Having the equalities $(f\circ g)_\ast=f_\ast\circ g_\ast$ and ${id_X}_\ast=id_{\mathbf{QCoh}(X)}$, for every composable pair of morphisms $f$ and  $g$ in $\mathbf{Sch}/S$, and for every $X\in \mathbf{Sch}/S$, implies that there is a functor
$$
\mathbf{QCoh}:\mathbf{Sch}/S\to \mathbf{CAT},
$$
where $\mathbf{CAT}$ is the category of large categories and functors between them, with $\mathbf{QCoh}(f)=f_\ast$. On the other hand, in general, ${()}^\ast$ is not a functor between categories, it is rather a pseudofunctor
$$
\mathbf{QCoh}:(\mathbf{Sch}/S)^{op}\to \mathbf{CAT}_2,
$$
where $\mathbf{CAT}_2$ is the strict $2$-category of large categories, functors between them, and natural transformations between the latter, with $\mathbf{QCoh}(f)=f^\ast$. 
The question whether one needs to distinguish between an equality and a canonical isomorphism is essentially the same as asking if, in a group, one needs to to distinguish between the identity element and a choice of an element of the group.
