NTFS писал(а):то вы рискуете огрести неизвестные неотслеживаемые ошибки, особенно у конечного пользователя.
Спасибо. Возможно именно с этим я и столкнулся, т.к. подопытный мне unit начал функционировать после внесения в его функцию 
Create строчки 
inherited Create; из этого можно предположить что initialization - действительно работает криво, т.к. у разработчика - функция работала. Но не факт, try finally end идентично решат проблему... 
Ради чистоты эксперимента - попробую заменить на try finally end...
Я это не использую в коде, я просто пытаюсь восстановить дееспособность ряда функций в GLScene и там столкнулся с неизвестными мне 
функциями. Кстати GLScene - очень хороший продукт, но судя по всему некоторый код там устарел. Но зато, то что работает - выполняет свои функции на 100++1% и довольно надёжно (
надеюсь).
alexs писал(а):Как и всякий инструмент, его надо использовать продумано. для объявления и очистки переменных, которые 100% не видны из других модулей.
 Похоже на правду... Выше описан эксперимент - попробую, о результате расскажу. Если NTFS - прав, то код заработает (либо сбой был в другом месте).
absdjfh писал(а):Представьте, что к вашему совету прислушались разработчики FPC. И теперь вам в каждой программе нужно вызывать такой код:
Лично я не вызываю в каждой программе функцию 
initialization - соответственно Ваш пример нечестный. Хотя сам подход использования 
initialization и finalization - по идее более правильный и я также априори не могу согласиться с NTFS в том что 
try finally end... работают корректнее нежели 
initialization и finalization... 
Истину - можно проверить только на чистом эксперименте. 
 
  
 Кто может привести пример некорректности работы:  
initialization и finalization  ?!  
 
 .