Pierce's Types and Programming Languages : circular definition of terms?
Part of your intuition is correct: "terms" really means "the collection of terms generated thus far". I think you will also find in Pierce a definition that makes this explicit on the next page (Definition 3.2.3).

What Pierce is actually doing is giving three equivalent and common ways of presenting syntax. In fact, the first one (page 24) is what you often see in papers and programming language specifications. Definition 3.2.2 is a way of understanding this as an inductive set of rules. And Definition 3.2.3 is a way of understanding the inductive set of rules by explicitly building larger terms from smaller terms.