I think you should make a distinction between the current problems of a (popular) PPM repository and the PPM system as is (a distribution system for binary packages). Such systems may be very successful, think of Debian's dpkg/apt system.
Personally, I find the approach taken by *BSD most appealing: there's a system for binary packages (just called "packages" in FreeBSD) and a system for building from source ("ports" in FreeBSD). Both are connected: a "package" is built using a build file from the "ports". One would use the source path if the binary package is not available (for whatever reason, including legal reasons), or if one needs a specific configuration, or if a newer version exists which is not yet available as a binary package.
Translating this into perl's world:
- "package" = ppm
- "ports" = CPAN.pm