Yes, it a dlopen
-ed module can call functions from the calling program, provided that the calling program has been linked with the -rdynamic
option.
BTW, most plugins need that feature: a firefox plugin obviously wants to call firefox functions.
Read also about visibility function __attribute__
... Read also Drepper's How to Write Shared Libraries long paper and dlopen(3) man page.