"this" has pointer type, but the syntax actually wants to describe
by-reference return (i.e. "return *this"). There is a disconnect
in the syntax here.
I think the syntax is fine. Notice (a) `this` isn't a type either; and (b) explicit object parameters use `this` in a similar fashion. It's okay for it to be a vague allusion.