At the risk of putting my head on a platter (as Mike Barr said).....If you take the point of view of ``representable functors", an object P, together with an orderded pair of arrows (pr_A:P --->A, pr_B:P---->B) is a product of A with B iff for all objects T, the mapping Hom(T,P)--->Hom(T,A)xHom(T,B) defined by f|---->(f.pr_A,f.pr_B) is a bijection. If you compose this map with the bijection (a,b)|--->(b,a): Hom(T,A)xHom(T,B)--->Hom(T,B)xHom(T,A), you get that P, together with the ordered pair of arrows ( pr_B:P---->B, pr_A:P --->A) represents a "product of B with A". and this is different even if we are talking about a product of A with itself. In other words, the "product we usually are thinking about" is universal for ordered pairs of arrows (a:T--->A,b:T--->B). If this means that "ordered pair" needs to be made a primitive notion within the underlying logic (as the Bourbakists did), so be it, because the simple translation of the above statement out of "set theoretic" terms" into "category theoretic" terms (no Hom-sets allowed) needs the notion of "ordered pair" in order to state it independently of any overarching "theory of sets".