Regarding Racket being a teaching language, I'd like to make what I think is an important distinction...
I don't consider Racket a teaching language. It was created (when it was called PLT Scheme) as a very practical and powerful implementation of Scheme, for at least 3 purposes:
* implement multiple teaching languages (for incrementally introducing language complexity as a beginner learns);
* implement an in-some-ways powerful IDE that would run on all desktop/laptop computers students might have access to;
* be a programming languages research platform.
I have an interest in education, but am not interested in using educational languages myself. I've always used Racket as a practical language, for industry production, university research, and personal techie learning/experimenting.