> Thing about that argument is that it shows that \\(h \mapsto g\circ h\circ f\\) is a _possible_ definition for the hom functor, but it doesn't explain why it's _necessary_.
I know you know this, but I'm using your nicely phrased question as a way to tell Julio:
Once you've chosen your definitions, you can prove theorems: the theorems say that certain consequences follow necessarily from the definitions. But the definitions are freely chosen.
There's no such thing as a 'necessary' definition. There are only better and worse definitions, and what counts as better is a matter of experience - and even taste to some extent. The main way to see if a definition is good, is to try to use it to prove theorems.
> If I understand @Julio correctly that's the nub of his question. It's all very well noting that this definition happens to work neatly, but _why_ this definition and not some other one?
In this situation the usual response is to ask the questioner to suggest another definition. Often they can't find an alternative, or the only alternatives are unsatisfactory in some way. Then it becomes obvious why the usual definition was chosen. Sometimes there _are_ good alternatives, and then things get really interesting.