Here's a good hands-on example.
Posets can be thought of as categories where any two objects have at most one arrow between them. If you start with a poset $(P,\leqslant)$ then you can form a category $\mathscr{C}_P$ whose object set is $P$ itself and $u,v\in P$ have an arrow $u\to v$ if and only if $u\leqslant v$.
Conversely, if $\mathscr{C}$ is a small category with at most one arrow between objects, you can form a poset $(P_\mathscr{C},\leqslant_\mathscr{C})$ by saying $u\leqslant_\mathscr{C} v$ if and only if there is an arrow $u\to v$.
Moreover, isomorphisms between posets and their corresponding categories are the same thing. I think that should be easy to see.
So, start with your favorite poset $(P,\leqslant)$. Interpret this then as a category $\mathscr{C}_P$. When you take the opposite category $\mathscr{C}_P^\text{op}$ you clearly get another poset (still at most one arrow!). Which poset? The opposite poset! Namely, $(P,\leqslant_\text{op})$ where $x\leqslant_\text{op}y$ if and only if $y\leqslant x$.
In particular, it's easy to see that $\mathscr{C}_P^\text{op}\cong\mathscr{C}_P$ if and only if $(P,\leqslant_\text{op})\cong(P,\leqslant)$
Now, why is this relevant for us? Take any poset that has a minimal element, but no maximal element (say $\mathbb{N}$ with the normal ordering). Then, it's not hard to see that the $(P,\leqslant_\text{op})$ has a maximal element, but no minimal element! But, these are properties that are preserved under isomorphisms of posets. So, $(P,\leqslant_\text{op})\not\cong (P,\leqslant)$ and so $\mathscr{C}_P^\text{op}\not\cong\mathscr{C}_P$.
Of course, the problem is, as others have pointed out to you, the "isomorphism" flips everything (e.g. the minimal element became the maximal element).
Thinking about posets is a good way to test understanding. Keep it in your back pocket.
The answer you probably don't want is that these kinds of "implementation details" really don't matter at all. Pick whichever makes you happiest, and it will never impact the answers to category-theoretic questions.
First, let me give a simpler example to make sure that I understand what you're asking:
We have "two possible implementations" for a group homomorphism $(G, \cdot) \to (H, \star)$.
- A triple $((G,\cdot),(H,\star),f)$ where $f : G \to H$ is a map on underlying sets (satisfying certain conditions)
- A function $f : G \to H$ on the underlying sets (satisfying certain conditions)
Now you worry that, under definition $2$, two different homomorphisms can have the same implementation. For instance, if we define $\cdot^\text{op} : G \times G \to G$ as $a \cdot^\text{op} b = b \cdot a$, then the same function $f$ can represent both a homomorphism $(G, \cdot) \to (H, \star)$ and to $(G,\cdot^\text{op}) \to (H,\star^\text{op})$ because these two homomorphisms have the same underlying function!
In definition $1$, we explicitly "tag" our function with its domain and codomain as groups so that the two homomorphisms $((G,\cdot), \ (H,\star), \ f)$ and $((G,\cdot^\text{op}), \ (H, \star^\text{op}), \ f)$ are encoded by different objects in the ambient set theory.
If I understand correctly, you're asking basically the same question, but in the context of categories and functors rather than groups and homomorphisms.
Now, in the group theoretic case and the category theoretic case, these implementation details don't matter. You will never be presented with a naked function out in the wild (or pair of functions in the category case) and asked "what is the group structure on the domain of this function?". Ironically, given the question, we can make this precise using category theory! Whenever we interact with a homomorphism $f$, we're really interacting with $f \in \text{Hom}((G,\cdot), (H,\star))$! We always have the bonus context on hand of what the domain and codomain should be. So, if you want${}^1$, you can absolutely use definition $1$ and tag your homomorphisms (functors) with the group structure (category structure) on their source and target.
Why does category theory make this precise? Because we can define categories of groups $\mathsf{Grp}_1$ and $\mathsf{Grp}_2$ using the two implementations of homsets. It's an easy exercise to show that these categories are equivalent (in fact, isomorphic!) so that, in this precise sense, you cannot distinguish the two definitions using only group theoretic questions. Similarly, you can build two categories $\mathsf{Cat}_1$ and $\mathsf{Cat}_2$ using the two definitions of functor, and you can show that these categories are also isomorphic${}^2$! So the answer to any "category theoretic question" you can ask won't depend on whether you choose definition 1 or 2!
I hope this helps ^_^
${}^1$: and it seems like you do want this, since you say you're doing this for your arrows in $\mathsf{Set}$
${}^2$: you do have to eat your tail a little bit since checking isomorphism of categories requires working in a category of categories. And in this category of categories you need a notion of functor, so you have to choose a definition before you can prove the two definitions agree... But this is really no different than any other time we have two equivalent definitions and we have to choose one "official" one to write down first.
Best Answer
Yes, the definition of a functor as a quadruplet is standard (as a definition of a function between sets as a triplet). This approach does not lead to difficulties you mentioned.