One of the grey areas of developing software for macOS is that loaded dynamic libraries may be unsafe to attempt to unload from memory.
Apple themselves advise against unloading of Objective-C code. It may leave the Objective-C runtime in an unstable state. The relevant documents are referenced in my post here…
Why does this matter? Well, Objective-C is the programming language of the macOS AppKit (also referred to as ‘Cocoa’). AppKit is the library that provides most of the GUI functionality of a macOS application. Many VST plugins will have at least a small stub of Objective-C code that allows the plugin to insert itself into the host application GUI. Some VST plugins will have all their user interface coded in Objective-C.
What is the issue here? Well, my investigations of Cubase indicate that VST2 plugins are ALWAYS unloaded from memory when a user removes them from a project. This goes against the advice of Apple, referenced above. Investigation of other major macOS DAWs show that they KEEP plugins in memory after a user has removed them from a project, i.e. they follow the advice of Apple.
So, my advice to macOS Cubase users is NEVER to remove a VST2 plugin from a project. Disable it and close its window, but leave it in the project. Set preferences option “Keep Plug-ins in Memory until the Application Quits”, which applies to VST3 plugins only.
If you must remove a plugin from a project then I suggest you immediately save and exit Cubase. Re-start and re-open the project to carry on working.