I'm working on a friendly tower finite field implementation for educational purposes. The library should allow easy building of tower fields from smaller ones - a user may define $\mathbb F_q$ and then build a tower field such as $\mathbb F_q \rightarrow \mathbb F_{q^k} \rightarrow \mathbb F_{(q^k)^m}$ and add/multiply inside the constructed field.
My initial plan was to reduce polynomial operations in tower at level $n$ to polynomial operations at level $n-1$. For example, in $\mathbb F_{(q^k)^m}$, elements are polynomials of degree at most $m-1$ with coefficients being polynomials of degree at most $k-1$. Element addition/multiplication at certain tower level would reduce to addition/multiplication at one level below.
Now, "Finite Fields for Computer Scientists and Engineers" by McEliece shows how a mapping between polynomial elements and their multiplicative cyclic group representation. It appears show an automorphism: $\mathbb F_{2^3}$ polynomials are mapped into $x^k$ and back, and it shows that it is easier to do multiplication in the field that way. My understanding is that this indeed is the case, but then addition becomes more complicated, so we can't just keep the finite field elements in that format.
The question here is - is the representation used in the picture commonly used in practice in finite field implementations and why/in which scenarios? Or just representing field elements with polynomial coefficients is the usual way to go?