Thank you for replying again, tobyink. The reason I am using Moo(::Role) is that I want to ensure at compile time that certain classes provide a given set of methods. (For each DBMS to be supported, there is one such class handling DBMS specific things.)
Since I wanted the module to be as portable as possible, I wanted it to have few dependencies, so Moo won against Moose.
You are right, pod coverage is mainly of interest to the author(s) of a module, so I could leave the pod coverage tests out for distribution, but I am not completely happy with having two versions of the module.
Maybe I will take the time and see how Pod::Coverage::Moose works and if I can borrow from there without having to use Moose. But right now I want to get the first version of the module out as soon as possible, there is only some documentation left to be written. For the time being, I think it would be wisest to follow your suggestion and leave the coverage tests out for the users.