Кроме того, мой аргумент, о том, что изучив основы программирования и питона, студенты смогут много чего попробовать, валиден и в случае сравнения с ocaml
В рамках основ попробовать что? Machine Learning-библиотеки? Программирование роботов? Это не основы программирования, это специализации, которые идут после основ.
Т.е. на мой взгляд для основ нужен простой язык с достаточными возможностями для объяснения основ программирования, который бы при этом позволил заинтересованным и активным студентам на практике применить новые знания, в том числе самостоятельно, двигаясь в ту сторону, которая интересна, пробуя и экспериментируя.
Т.е. они после Питона пойдут, например, драйверы писать? Или игры? Или FPGA программировать? Или приложения для iOS/Android? Ну-ну.
Для практики нужно выбирать адекватные инструменты, а основы — это больше теория и тут нужен достаточно гибкий язык, позволяющий просто выражать базовые концепции, т.е. имеющий подходящие для этого языковые абстракции. Racket, например. Или Oz.