Все в порядке!
Компилятор проходит по коду, видит что TSomeType может быть не определен (не инициализирован) и честно об этом говорит.
Если сейчас в сложных деревьях не инициализировать переменную компилятор же предупреждает!
А в чем сложность в приведенном примере?
При использовании директив условной компиляции сложности есть, а при предложенном подходе нет.
Вы своим примером только подтвердили удобство моего предложения спасибо!