На самом деле мы не знаем что внутри сделает конкретный интерпретатор. В том же питоне всё компилируется в байткод и что при этом сделает оптимизатор мы тоже не знаем. Что он там выкинет и что нет. Строго говоря, зависит от совершенства оптимизатора. В одной версии не выкинет, в следующей уже да.
согласен. Но с таким подходом можно дойти до абсурда, например, содавать переменную типа int, а потом, при каждом обращении ее проверять на тип, согласись,это странный подход...