In cyclic codes, a code vector can be obtained from another by simple circular shift. Why then the other method?
While it's true that a circular shift of a codeword is another codeword, it's not true that you can generate all codewords by shifting one codeword. Consider the all-zeros or all-ones codewords; they can't be generated by shifting any of the other codewords.

For very large codes, it is important to have simple algorithms to generate a codeword based on the input. Even if the algorithm seems to operate on a "roundabout" way for small codes, try to implement your idea using a code with $(n,k)=(100,50)$, just to give one example. You'll find that the "roundabout" way is actually much easier to implement!