Why is tensoring a functor? On objects, it is only defined up to isomorphism... also fiber products... My complaint is mainly that the tensor product is only defined up to isomorphism, but a functor needs to send objects to objects, not just to isomorphism classes.
My guess would be that this is resolved in principal because there is such a canonical way of constructing the tensor product (as certain formal symbols, modulo some equivalence relations), and this satisfies me at least in the category of rings or modules. However, I am really asking this question because I am trying to understand fiber products of schemes better, and I would like to say something like $X  \times _Z \_$ is a functor on the category of $Z$ schemes... 
but I am not sure that this makes sense, because now there appears is a lot of choice as for how one can construct the fiber product $X \times_Z Y$ - $X$, $Y$ and $Z$ can be chopped up into affines in many different ways, and I am not comfortable enough with gluing to reassure myself that the resulting fiber product is always the same.
I know this is kind of a pedantic question, but I would like some guidance please. This story is not as clear to me as I would like.
 A: If you want an honest functor, you can simply choose any representative of the isomorphism class in question; it doesn't have to be "canonical".  That is, for every pair $(X,Y)$ of $Z$-schemes, you can choose some triple $(P_{X,Y},p_{X,Y},q_{X,Y})$ where $P_{X,Y}$ is a $Z$-scheme and $p_{X,Y}:P_{X,Y}\to X$ and $q_{X,Y}:P_{X,Y}\to Y$ are maps of $Z$-schemes which satisfy the definiton of a fiber product.  There is then a functor $F:Sch/Z\times Sch/Z\to Sch/Z$ which on objects is given by $F(X,Y)=P_{X,Y}$ and on maps is given as follows.  Given a pair of maps $f:X\to X'$ and $g:Y\to Y'$, the universal property of $P_{X',Y'}$ means that there is a unique map $h:P_{X,Y}\to P_{X',Y'}$ such that $p_{X',Y'}h=p_{X,Y}$ and $q_{X',Y'}h=q_{X,Y}$.  Define $F(f,g)=h$.  You can check that this definition really does preserve composition.
(In the argument you are trying to understand, instead of constructing this functor for all $X$ and $Y$ at once, you first construct it on the full subcategory of $Sch/Z\times Sch/Z$ in which both objects are affine, and then on the full subcategory on which at least one object is affine.)
In general, choosing such a triple $(P_{X,Y},p_{X,Y},q_{X,Y})$ simultaneously for every $X$ and $Y$ (in some arbitrary category) might require some form of the axiom of choice.  However, in many cases, there is a straightforward "canonical" choice you can make without the axiom of choice (like the "canonical" construction of tensor products you mentioned).  But even when there is no clear "canonical" way to do the construction, there are still usually tricks you can do with the Axiom of Regularity to get an explicitly defined functor within the framework of ZF set theory (in particular, you can do this for fiber products of schemes).  I can say more about these tricks if you're interested, but they involve some fairly technical details about axiomatic set theory.
A: The tensor product is defined up to canonical isomorphism, which is different from being defined up to isomorphism: there is a universal map $M\times N \to M\otimes N$ through which any bilinear map $M \times N \to R$ factors, and if you give one construction of the tensor product (e.g. generators and relations),  and I give another one (e.g.perhaps I universally add an extra generator for no reason and then add a relation that makes it 0), this universal property will pin down a canonical isomorphism between our constructions. As a result there is no ambiguity in writing the functor $A \otimes \_\_$, say.
