и у него мир схлопнулся до вот этих вот "int+int->int", никакой фантазии
у меня на этот счет довольно простое мнение. дак тайпинг может быть полезен, когда есть хитровы***анные объекты и методы, тайпинг для которых был бы слишком сложным и монструозным. такие штуки можно использовать в фреймворках, либах, но не на проде. людям потом всю эту волшебную подливу еще поддерживать. стажеров (раз мы про них, но джунов суда тоже можно докинуть) не готовят писать фреймворки. это делают большие дяди, которые уже повидали некоторое дерьмо и знают тонкости проектирования, языка и т.д. стажеров готовят писать код для продакшена. простой, читаемый, понятный код. для таких вещей и придумали типы. если к чему-то не получается написать простой тип, то скорее всего что-то у стажера пошло не так и он делает не то. это очень помогает выявить архитектурные косяки на ранних стадиях.
обучение должно строиться на простых и конкретных вещах. сначала ученик изучает основы (синтаксис и простой тайпинг), затем оттачивает навыки и расширяет кругозор знаний (более сложные типы, классы) и только после может придумывать что-то свое (фреймворки и черная магия)