When you access a global variable, these will be global variables global for your DLL, not global for the main BDS.exe. I'm not sure, but I think your DLL will have its own global variable Screen and Application if you are connected in Forms and the VCL core.
Those things that belong to the IDE itself are available through Open Tools Api (OTA). I believe that you usually do not share any objects between the IDE by your expert, and if you tried to do this, it would be problematic. Anything you do bypassing the OTA will be vulnerable to weird paths, especially in future versions of the IDE.
Dependency problems, of course, are a big reason not to use BPL-based packages, but I think an even bigger reason is to maintain a complete separation between the internal components of the tool and the internal elements of the development environment.
Remember that a DLL target, such as an executable target, is statically linked. That is the essence of the difference. If your expert provides functionality that uses only legal, public, documented OTA interfaces, then the transition to the DLL should be no problem. If you use some of the back doors that are possible with BPL, then I cannot advise you further.
source share