EDIT: I'm completely rewriting this in detail now that I think I've worked it out. Lots of possibilities for mistakes here, so stay alert!
I claim that the generalization to include $(a)$ fails. My counterexample goes like this... Take $A$ to be any small, complete (that's small AND complete) category with no nonzero projectives. If the embedding into $R-mod$ given by Mitchell preserved arbitrary products, then it would be continuous since $A$ has equalizers and any limits can be built from products and equialisers (where equalisers are preserved by exactness).
Now, for each $x \in R-mod$, consider the index set
$I = \{f: x \rightarrow Va \vert a\in A\} = \bigcup_{a \in A} Hom(x, Va)\}$. (This is a set since hom-sets are small, and all of $A$ is a set.) Now, any $x \rightarrow Va$ can be realized as $x \rightarrow Va \rightarrow Va$ (with the identity), so we have verified the "solution set condition" of the adjoint functor theorem. If all is good, we may conclude that this embedding has a left adjoint $R-mod \rightarrow A$.
Now, left adjoints of exact functors preserve projective objects (see Weibel). Now, if we choose some $b \in A$ that doesn't map to zero under the embedding $V$, and some free module $a \in R-mod$ that maps nontrivially to $b$, then by the bijection on hom-sets we get from the adjunction, we may conclude that $a$ maps to some nonzero element in $A$. But this is a contradiction, as the only projective elements of $A$ are zero.
How does that look?
$\DeclareMathOperator{\Hom}{Hom}\newcommand{\amod}{\mathscr{A}\text{-}{\bf Mod}}\newcommand{\scrA}{\mathscr{A}}\newcommand{\scrE}{\mathscr{E}}\newcommand{\Ab}{\mathbf{Ab}}\DeclareMathOperator{\Lex}{\mathbf{Lex}}\DeclareMathOperator{\coker}{Coker}$I only know one proof of the embedding theorem—the expositions differ heavily in terminology but the approaches all are equivalent, as far as I can tell. I think the proof in Swan's book on K-theory makes the relation between the Freyd-Mitchell approach and Gabriel's approach pretty clear. Let me just say that there is no cheap way of getting the Freyd-Mitchell embedding theorem since there is a considerable amount of work you need to invest in order to get all the details straight. On the other hand, if you manage to feel comfortable with the details, you will have learned quite a good amount of standard tools of homological algebra, so I think it's well worth the effort.
Think of the category of functors $\scrA \to \Ab$ as $\scrA$-modules, that's why the notation $\amod$ is fairly common. The Yoneda embedding $A \mapsto \Hom(A,{-})$ even yields a fully faithful contravariant functor $y\colon \scrA\to\amod$.
The category $\amod$ inherits a bunch of nice properties of the category $\Ab$ of abelian groups:
- It is abelian.
- It is complete and cocomplete ((co-)limits can be computed pointwise on objects)
- The functors $\Hom(A,{-})$ are injective and $\prod_{A \in\scrA} \Hom{(A,{-})}$ is an injective cogenerator.
- Since there is an injective cogenerator, the category $\amod$ is well-powered.
- etc.
However, the Yoneda embedding is not exact: If $0 \to A' \to A \to A'' \to 0$ is a short exact sequence, we only have an exact sequence
$$0 \to \Hom(A',{-}) \to \Hom(A,{-}) \to \Hom(A'',{-})$$
in $\amod$.
It turns out that the functor $Q = \coker{(\Hom(A,{-}) \to \Hom(A'',{-}))}$ is “weakly effaceable”, so we would want it to be zero in order to get an exact functor. How can we achieve this? Well, just force them to be zero: say a morphism $f\colon F \to G$ in $\amod$ is an isomorphism if both its kernel and its cokernel are weakly effaceable. If this works then a weakly effaceable functor $E$ is isomorphic to zero because $E \to 0$ has $E$ as kernel. Now the full subcategory $\scrE$ of weakly effaceable functors is a Serre subcategory, so we may form the Gabriel quotient $\amod/\scrE$. By its construction, isomorphisms in the Gabriel quotient have precisely the description above.
On the other hand, the category $\Lex(\scrA,\Ab)$ of left exact functors $\scrA \to \Ab$ is abelian. This is far from obvious when you start from the definitions. However, $\Lex(\scrA,\Ab)$ sits comfortably inside the abelian category $\amod$. The inclusion has an exact left adjoint (!) (= “sheafification”), so again ${\bf Lex}({\scr A}, \Ab)$ inherits many useful properties from $\amod$. Moreover, the kernel of the left adjoint can be identified with the weakly effaceable functors, and that's why $\Lex{(\scrA, \Ab)} = \amod/\scrE$.
All this work shows that $A \mapsto \Hom{(A,{-})}$ is a fully faithful and exact embedding of $\scrA$ into ${\Lex}{(\scrA, \Ab)}$, so it remains to show that the latter can be embedded into a category of modules. This is well described in Weibel's or Swan's books, so I won't elaborate on that point and content myself by saying that you simply need to look at the endomorphism ring of an injective cogenerator.
As for references, I think you can't do much better than Freyd's book. Don't be too intimidated by Swan's exposition in his K-theory book. If you're really interested in understanding this proof, I think it's worth reading the two expositions (first Freyd, then Swan). There also is a proof in volume 2 of Borceux's Handbook of categorical algebra with a more “hands on” approach.
Best Answer
Observe that $\bigoplus_I : \textbf{Ab}^I \to \textbf{Ab}$ is a conservative exact functor: it is right exact by general nonsense, it preserves monomorphisms (because e.g. $\bigoplus_{i \in I} A_i$ is naturally a subgroup of $\prod_{i \in I} A_i$), and it is conservative because $\bigoplus_{i \in I} A_i \cong 0$ implies each $A_i \cong 0$. It seems to me that you are looking for a conservative exact functor $\mathcal{A} \to \textbf{Ab}$, so this observation implies that allowing $I$ with more than one element does not add any generality.
For small abelian categories $\mathcal{A}$, the Freyd–Mitchell embedding theorem gives a fully faithful exact functor $\mathcal{A} \to R\textbf{-Mod}$ (where $R$ is a not necessarily commutative ring), so every small abelian category admits a conservative exact functor $\mathcal{A} \to \textbf{Ab}$. In particular, $\mathcal{A}$ will be isomorphic to a (not necessarily full) abelian subcategory of $\textbf{Ab}$, by which I mean a subcategory that is closed under finite direct sums/products, kernels, and cokernels.
If $\mathcal{A}$ is not required to be small then one has to do more work. The existence of a conservative exact functor $\mathcal{A} \to \textbf{Ab}$ is itself a size restriction on $\mathcal{A}$. For example:
Proposition. If there is a conservative exact functor $\mathcal{A} \to \textbf{Ab}$, then $\mathcal{A}$ is locally small and wellpowered.
Proof. A conservative exact functor is automatically faithful, and $\textbf{Ab}$ is locally small, so $\mathcal{A}$ must also be locally small. Similarly, a conservative exact functor induces embeddings of subobject lattices, and $\textbf{Ab}$ is wellpowered, so $\mathcal{A}$ must also be wellpowered. ◼
Maybe you don't believe in categories that are not locally small and wellpowered. Even so, I am not aware of any embedding theorems that work for arbitrary locally small and wellpowered abelian categories. (I am also not aware of counterexamples. Perhaps there is some large cardinal axiom that implies it can be done.) In practice, it is not necessary to embed the entire category to prove the theorems you want – you can usually find a small abelian subcategory containing all the objects and morphisms you need for your theorem and then you can embed that subcategory. Asking for an embedding of the whole category at once is being greedy – like asking for a global holomorphic chart of a complex manifold when local charts suffice.
Here are some embedding theorems I know for non-small abelian categories.
Theorem. If $\mathcal{A}$ is a Grothendieck abelian category then there is a conservative exact functor $\mathcal{A}^\textrm{op} \to \textbf{Ab}$ that has a left adjoint.
Proof. It is a well-known theorem that Grothendieck abelian categories have injective cogenerators. But an injective cogenerator of $\mathcal{A}$ is precisely an object $I$ such that $\textrm{Hom}_\mathcal{A} (-, I) : \mathcal{A}^\textrm{op} \to \textbf{Ab}$ is a conservative exact functor. Furthermore, representable functors in cocomplete categories automatically have a left adjoint, and $\mathcal{A}^\textrm{op}$ is indeed cocomplete. ◼
Maybe contravariance is jarring. But $\textbf{Ab}$ is itself a Grothendieck abelian category, so the theorem (or Pontryagin duality) gives us a conservative exact functor $\textbf{Ab}^\textrm{op} \to \textbf{Ab}$, and composing them yields a conservative exact functor $\mathcal{A} \to \textbf{Ab}$.
The following is a small generalisation.
Theorem. If $\mathcal{A}$ is a locally small abelian category and has a small generating set, then there is a conservative exact functor $\mathcal{A}^\textrm{op} \to \textbf{Ab}$.
Proof. The hypothesis implies there is a small full abelian subcategory $\mathcal{B}$ containing the given small generating set of $\mathcal{A}$. We get a fully faithful functor $\mathcal{A} \to [\mathcal{B}^\textrm{op}, \textbf{Ab}]$, but in any case it is not automatically exact. Let $\textbf{Lex} (\mathcal{B}, \textbf{Ab})$ be the full subcategory of left exact functors $\mathcal{B}^\textrm{op} \to \textbf{Ab}$. Then, the earlier functor factors as a fully faithful exact functor $\mathcal{A} \to \textbf{Lex} (\mathcal{B}, \textbf{Ab})$. But $\textbf{Lex} (\mathcal{B}, \textbf{Ab})$ is a Grothendieck abelian category, so we may apply the earlier theorem to conclude. ◼