It's all down to CJK. Originally they allocated 21k codepoints to CJK, and if that was accurate then 16 bits would pretty much fit things.
But we currently have 88k CJK characters assigned out of possibly more than 100k total.
I can't easily find anything about how this went wrong and they got such a small number.