I meant the library would NOT register itself as a plugin, right?
Correct, it would simply link against `libgeany.so` to gain access to the plugin API.
How intelligent is the runtime linker? I guess it simply links together every function that is in use. I mean if a plugin would use a function of my library then the function would be linked in even if the plugin is not activated.
When Geany loads a plugin using your library, the library would be loaded by the runtime linker, the same as any other library. For example if Webhelper and Markdown are both linked against the same WebkitGtk version, only one copy of that library would be loaded into the process. If both Webhelper and Markdown plugins are de-activated, the WebKitGtk library would be unloaded, barring the use of certain libdl flags such as `RTLD_NODELETE`, perhaps.