Когда-то в ms-dos была такая фишка, называлась оверлеи. Наборы
функций могли храниться в отдельных файлах на диске. Программа по
мере надобности подгружала функции из файла в ОЗУ и запускала их
выполнение. При этом функции должны быть откомпилированы с использованием не статических как мы привыкли, а относительных адресов. При загрузке относительные адреса заменяются на абсолютные в соответствии с текущим адресом загрузки. Для этого компилятор и линкер должны уметь такую работу выполнять. Если бы такое сейчас нашлось, сам бы не прочь использовать. Вот ссылка для начала https://ru.wikipedia.org/wiki/Overlay_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)