1. Нет, только одно поле может быть задано как "type" записи. И именно его изменение вызывает перезагрузку формы.
А вот FlexForm позволяет сделать это для любых/нескольких полей
http://www.t3node.com/blog/dynamic-f...po3-flexforms/
Но в базу как известно FF сохраняется как текст в XML, а не по отдельным полям.
2. Не знаю, не стояла такая задача. Если настройки явно не описаны в доках, значит нет такой возможности. Да и зачем?
3. Значения uid ядро не присваивает. Расчитывает на autoincrement. А его понятное дело для char нет. Значит не будет работать. Но ничто не мешает вам использовать свои "скрытые" от BE таблицы для собственных нужд с любыми ключами. Например RealURL такие создает для своих кэшей.