Proof that `type X Y` causes the issue: https://play.golang.org/p/erfcSIe-Z7b
This is a useful feature and there's nothing weird or special case about how this works. It's just not the aliasing feature you expected.
Proof that `type X Y` causes the issue: https://play.golang.org/p/erfcSIe-Z7b