My personal experience is that I develop a framework for each site I work on, and wrap utility methods/common functionality into a CGI::App superclass. The application framework -- cgiapp -- lets me choose what needs to be present, and what doesn't need to be. Every site is a little different, and I don't like to have more functionality in the application than is necessary.
As an example, I might want a class that simply loads template content into a sitewide template. I have one run mode, and setup a default page if none is passed. Done.
Another site might consist of several applications. The body content needs to go into the sitewide template, and I need breadcrumbs to the application. These items go into the superclass, and the individual application classes provide hinting so the superclass can do its job at the end.
I appreciate larger frameworks -- they're great for prototyping more complex applications -- but in the end I've found that a lighter-weight framework like CGI::App suits my personal needs as a developer, because it allows me to build frameworks tailored for the sites I'm developing.
It sounds like Catalyst more closely suits *your* needs, however, and that's what you need to think about. If you're worried about the longevity of the project, you can always step up as a developer... ;-)