Когда стоит предпочитать prop?: Type, а когда — prop: Type | undefined?
Нет разницы какой подход вы выберите, просто разный вид одной и той же записи, главное чтобы во всем проекте было одинаково
Допустимо ли использовать ?:, даже если значение временно может быть undefined?
undefined буквально означает "не определено", так что да, допустимо
Какой подход считается самым чистым и "производственным" (production-grade) в современных проектах на React + TypeScript?
Любой который вы выберите, либо тот который уже есть на проекте