Почему typedefs не являются строго типизированными?

В чем причинаtypedefs не сильно печатается? Есть ли какая-то выгода, которую я не вижу, или это связано с обратной совместимостью? Смотрите этот пример:

typedef int Velocity;
void foo(Velocity v) {
    //do anything;
}
int main() {
    int i=4;
    foo(i); //Should result in compile error if strongly typed.
    return 0;
}

Я не прошу обходных путей для получения строго типизированного типа данных, но хочу только знать, почему стандарт не требуетtypedefs быть строго набранным?

Спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос