User-facing is easy; things go downhill when users have system-facing strings of their own, and some of those strings become other-user-facing strings.
> with only an extremely few things I think might have served better if done differently.
Thus, in spite of disagreeing in the strongest possible terms, you do have some nits to pick.
A "few things" could be far-reaching. For instance, allowing the same semantic character to be encoded in more than one way can count as "one thing". If someone happens to think this is the only problem with Unicode, then that's "extremely few things". Yet, it's pretty major.