Полностью она проверок типов снять не может. Для функции двух переменных эта оптимизация может снять только одну проверку, что будет полумерой в прямом смысле.
datetime плохой пример. Есть примитивные типы, и куча (41 в 2.7) модулей которые грузятся перед __main__ и хрен знает кто и где сохранил ссылки на их содержимое. Поэтому замена класса чревата нежданчиками.
Может оно и к лучшему, иначе бы все руби-хипстеры сидели на питоне.