The construction described above is applicable to any context free language. Our language for arithmetic is a context free language so we can encode it in the manner just described. This means we are encoding statements about the natural numbers as natural numbers.
There are a number of useful things this allows us to do. One is to implement the idea discussed at the end of the section on arithmetic sets of showing that any sequence we can define in our language gives rise to an arithmetic set. The key idea is that encoding gives us a way to represent the concept “can define in our language” within the our language. Previously we’ve scrupulously maintained the distinction between statements within a language and statements about that language, and that distinction remains important, but in the case of arithmetic we can now start finding proxies within the language for statements about the language.