В стандартной библиотеке С++ массово используются typedef-ы. Буквально везде. Речь идёт о всяких там streampos, streamoff, streamsize, size_type и т.п.
Лично я просто впадаю в ступор от такого обилия потенциально несовместимых типов. И чего с этим делать, непонятно. Либо получается куча приведений типов, либо приходится использовать "правильные" типы везде (что малореально, тупо, отнимает кучу времени и рушит модульность).