Нужно начать с того что убедиться что тебе реально нужен приватный cpan. Если у тебя один perl проект, то выносить все в отдельные библиотеки — это просто трата времени. Если у тебя есть несколько разных проектов которые должны исползовать один и тот же код — то приватный cpan — это не единственный способ шарить одинаковый код между проектами. Можно тупо забирать из VCS, можно использовать что-то вроде git submodules, можно упаковывать в системные пакеты. У всех решенией есть и плюсы и минусы.
У меня есть несколько модулей которые много где переиспользуются. Думаю как в случае обновлений нормально их доставлять. Сейчас это не сделано никак, просто руками что-то копируется, а что-то увы забывается и получается в разных проектах разные версии одного и того-же модуля. В общем не очень...
Плюс когда новый проект начинаешь хотелось бы делать что-то вроде cpan install ... в том числе и для своих модулей.