Ответ 1
Суррогатная область была добавлена в Unicode 2.0, чтобы расширить код за пределами 65536 пунктов кода, сохраняя при этом совместимость с существующим 16-битным представлением. Чтобы кодировать 20 бит, необходимых для представления новых кодовых точек 1048576, они приняли 1024 символа для представления первых 10 бит и 1024 для представления вторых 10 бит (они использовали 2048 символов вместо 1024, чтобы позволить самосинхронизации кода), Для эффективности распознавания символов было бы лучше, если бы все 2048 разделили (бинарный) префикс.
Я могу только догадываться, что они хотели перетащить этот необычно-целевой блок на более высокий, а не на нижний код. Блоки 0xE000-0xE7FF, 0xE800-0xEFFF и 0xF000-0xF7FF уже зарезервированы для области "частного использования", а 0xF800-0xFFFF также частично зарезервирован для частного использования и частично используется для других кодов. Таким образом, 0xD800-0xDFFF был бы самым высоким доступным блоком.