Соответствующего типовыражения на C (и на плюсах) написать нельзя.
Как это?
int []. Так пишут, например, в аргументах функции, не имеющих имени.
Возможно, пробовали
typedef newtype oldtype и
typedef oldtype newtype, и второе приводило к меньшему количеству ошибок? Впрочем, вряд ли Создатели настолько глубоко заморачивались... Си начинался как мелкая поделка для себя, вместе с BCPL, B, UNIX. Его (и UNIX) бурный успех был неожиданностью для Создателей. Можно представить себе такой мотив, как "использовали готовый кусок синтаксического анализатора".