The init-no-global-side-effects tag allows the build, in static mode, to not wrap use of the static library in -Wl,--whole-archive ... -Wl,--no-whole-archive or the semantic equivalent on other platforms.
In dynamic builds we have no need at all of the --whole-archive flag at all. Instead, the flag could be interpreted to mean that the library can be wrapped instead in -Wl,--no-as-needed ... -Wl,--as-needed, or the local equivalent. This would allow libraries that have no global initialization side effects to be automatically pruned from the DT_NEEDED set, even if LIBDEPS in public mode causes the library to be spammed on to the link line of other things.