I think you're over-complicating it a tad. You might be caught up because (3) says "both (2)
and (3) are correct". Suppose we had some answer (c) that said "both (a) and (b) are correct" - this is a pretty standard answer, and we wouldn't really question it in the same way. However, because that particular (3) asserts itself, you think there'll be an infinite loop. When you think about it, though, every possible choice asserts this implicitly (that is "I am correct"). From our previous example, including the implicit premise, (c) would assert "(a), (b), and (c) are all true".
Now, by what we outlined above, both (2) and (3) are "recursive" by your criterion (that is, a statement that asserts that it is true, but of course, in this context, that applies for all statements). In other words, what I'm trying to get through is that there's nothing "special" about (3), it's just that it states "I am correct" explicitly, while the other choices have "I am true" as an enthymeme.
Logically speaking, there's nothing "loopy" about a statement that asserts that it is true. Why? Well, let's assume that there is a loop. If you accept the nth statement in the loop as true, then we know that we'll just end up accepting the (n+1)th statement in the loop as true as well (this is because it asserts that it itself is true). So, since we know this, we can "inductively" (if you read this, Mowicz, forgive me for my informal proof
) reason that whatever n we pick, we'll end up with the same conclusion - namely, that the statement asserts itself as true. So, it's not a loop - it's just an infinite affirmation, if you like.
Now, as xxsumz said, it's another story entirely for statements of the form "I am false". That's the Epimenides paradox, and it's dangerous stuff, haha.