These aliases are sometimes used in assembly code and make the code more readable. They are supported by avr-gcc too.
I _think_ this is implemented slightly differently in GCC. For example, if you take a look here (https://godbolt.org/z/sdEcc7) you can see that it defines __tmp_reg__ separately. Also, note that these two registers (__tmp_reg__ and __zero_reg__) are different on "reduced tiny" chips, see https://gcc.gnu.org/wiki/avr-gcc#Reduced_Tiny - I'm not sure this difference can be easily expressed in this register file description.