Когда вы обращаетесь к глобальной переменной, это будут глобальные переменные, которые являются глобальными для вашей DLL, а не глобальными для основного BDS.exe. Я не уверен, но я думаю, что ваша DLL будет иметь собственную глобальную переменную Screen и Application, если вы связаны в Forms, и ядро VCL.
Доступ к тем вещам, которые принадлежат самой IDE, осуществляется через Open Tools Api (OTA). Я считаю, что вы обычно не делите какие-либо объекты между IDE вашего эксперта, и если бы вы попытались это сделать, это было бы проблематично. Все, что вы делаете в обход OTA, будет уязвимым для взлома странным образом, особенно в будущих версиях IDE.
Проблемы с зависимостями - это, конечно, серьезная причина не использовать пакеты, основанные на BPL, но я думаю, что еще большей причиной является полное разделение внутренних компонентов вашего инструмента и внутренних компонентов IDE.
Помните, что цель DLL, как и исполняемая цель, статически связана. В этом суть разницы. Если ваш эксперт предоставляет функциональность, которая использует только легальные общедоступные документированные интерфейсы OTA, то переход на DLL должен быть беспроблемным. Если вы используете взломы задних дверей, которые возможны с BPL, то я не могу посоветовать вам дальше.