Хочешь императивщину: пожалуйста, циклы, ref'ы, структуры, массивы.
Хочешь ООП: пожалуйста, и immediate-объекты, и классы с множественным наследованием и т.п.
Ну тут субъективно, но мне кажется язык перегружен для того, чтобы на нем основы изучать. Кроме того, мой аргумент, о том, что изучив основы программирования и питона, студенты смогут много чего попробовать, валиден и в случае сравнения с ocaml :)
Я не знаю, как изучали программирование вы, но я, в основном, это делал на практике, т.е. делал то, что мне было интересно делать. В мое время одним из лучших вариантов для практики был delphi, и изучение паскаля тут хоть какую-то помощь оказывало.
Т.е. на мой взгляд для основ нужен простой язык с достаточными возможностями для объяснения основ программирования, который бы при этом позволил заинтересованным и активным студентам на практике применить новые знания, в том числе самостоятельно, двигаясь в ту сторону, которая интересна, пробуя и экспериментируя.
И вот если мы рассматриваем такое сочетание качеств, то, насколько я вижу, питон оказывается вне конкуренции. Он прост, не перегружен, имеет все нужные возможности для объяснения основ, позволит студентам активно применять даже базовые знания и развиваться дальше.
В более специальных курсах вполне можно и нужно брать за основу другие языки.