I guess it makes for a simpler compiler implementation - if you allow type bounds in typealiases, you are effectively creating new types while with the current limitations a simple "string replace" implementation will work. Just a guess though, someone from the compiler team might have a better explanation.