только непонятно... зачем все это.....
зачем многочисленные уровни вложенности?
(если очень нужно внутри папки мод(значит и в сим и код), как-то сгруппировать модули, то можно давать самостоятельно им общую часть названия:
Stud/mod/Urok1Uprajnenie1
Stud/mod/Urok1Uprajnenie2
...
)

зачем неявные механизмы импорта("берется самый свежий")?
(как вариант можно хранить исходники модулей разных версий в разных файлах:
Stud/mod/ModuleVer1
Stud/mod/ModuleVer2
....
но само имя модуля будет во всех StudModule, когда пробуем программу с новой версией, то компилируем ее, если нужно откатиться то компилируем более раннюю
тут теряется возможность перехода на исходник "выделил имя модуля где угодно->исходный текст")

(или такие приемы сильно неудобны? или может не везде подходят)

на сколько усложнятся схемы хранения, распространения, интеграции с пакетами?