SteveKemp announced a patch to fns.c on gnu.emacs.sources which allows Emacs to use shared libraries (2000-02-23). He called it “Dynamic loading of extensions modules” and “Dynamically Extending Emacs”.
The patch eliminated the need to recompile Emacs, by allowing C DEFUN functions to be placed in external libraries and dynamically loaded when they were needed. The patch is no longer maintained.
DaveLove released a follow up for Emacs that uses libtool. According to Dave, “this won’t get into Emacs until rms is persuaded it’s not a GPL threat, probably with some additional hack”.
XEmacs already has something of an FFI: