Лучший ответ, который я могу вам дать, - «не невозможно, но я не знаю, произойдет ли это».
Вы должны думать о том, что на самом деле происходит. Когда вы сталкиваетесь с файлом .py, Python должен прочитать файл, скомпилировать его, а затем выполнить байт-код. Компиляция происходит внутри процесса и поэтому не может быть передана.
Когда вы сталкиваетесь с файлом .so, операционная система связывается в памяти, которая была зарезервирована для этой библиотеки. Все процессы имеют одну и ту же область памяти, поэтому вы экономите память.
В Python уже есть третий способ загрузки модулей. Если это возможно, при загрузке файла .py он создает предварительно скомпилированный файл .pyc, который загружается быстрее (вы избегаете компиляции). В следующий раз он загружает файл .pyc. Они могли бы .pyc файл, просто отображая его в памяти. (Использование MAP_PRIVATE на случай, если позже с этим байтовым кодом возникнут другие проблемы.) Если они это сделают, то общие модули по умолчанию окажутся в общей памяти.
Я понятия не имею, была ли она реализована таким образом.