$\newcommand{\C}{\mathbf{C}} \newcommand{\D}{\mathbf{D}}$ Let $\C$ be a category with pullbacks. Taking any choice of pullbacks gives us re-indexing functors $f^* \colon \C /Y \to \C/X$, and these will be functorial in $f$ up to natural isomorphism, in that $g^* \cdot f^* \cong (f \cdot g)^*$. However, these will usually not be *strictly* functorial in $f$; that is, $g^* \cdot f^*$ and $(f \cdot g)^*$ will not be literally equal. Strict functoriality also requires that $1_X^* = 1_{\C/X}$; while this typically does hold on the nose, it’s still not automatic.

My main question: **Is there always some choice of pullbacks that make re-indexing strictly functorial?** I believe the answer should be “no”, but I don’t know any counterexample. Even in the case of $\mathbf{Set}$, it’s not obvious whether there’s a choice that works.

An equivalent phrasing of the question is: can the codomain fibration $\mathrm{cod} \colon \C^\rightarrow \to \C$ be equipped with a splitting? It can always be replaced by an *equivalent* split fibration over $\C$; but splitting the codomain fibration itself seems hard.