I am reading surface code theory with this paper. It is explained there that the $X_L$ and $Z_L$ (logical $X$ and $Z$ operator) can be pushed at the end of the circuit and they actually do not have to be implemented on the hardware.
The purpose of my question is to verify if I understood the general property allowing it to be true.
I assume to simplify the discussion that the circuit is only composed of Clifford operations. The reason why we can "push to the end" the Pauli is that as the circuit will only be composed of Clifford operations, for any gate $G$ in this circuit, for any pauli operator $P$, we will have
$$GP=P' G$$
where $P'$ is another Pauli operator.
For this reason, we can pre-compute the commutation of our Pauli being $X$ or $Z$ for all the other Clifford gate in the circuit and use consecutive commutation relation to push them toward the end of the circuit. There we can simplify the resulting circuit (using things such as $X^2=I$ for instance).
Also, this trick works for Pauli operator but it doesn't work for other Clifford operations which would be harder to push "toward the end" (because I don't have in general an easy property telling me how two Clifford operations are commuting: a succession of commutation for Clifford could make the calculation hard to follow classically).
Is my understanding a good overall philosophy behind this trick?