Well ... there is a lot of duplication, actually, at least it seems like I run across a lot of it.
Just as bad there's a lot of inconsistency in how packages do various things and use the core tools.
So ... for our second release cycle I'd like to see simplification in the form of ripping out duplicate stuff (we don't really need two db api's, do we?) and hacking on various packages so there's a lot more consistent use of intrinsic concepts like permissions, inheritance, etc.
I took certain baby-steps in that direction while whacking on this thing, for instance providing Tcl API for the uploading of content to the content repository that deals with text vs. non-text, LOB vs. filesystem content storage but only modified a couple of packages to use it. Those that do are a lot cleaner and straightforward than those that continue to "roll their own". This is an example of duplication of effort outside the core that was fixable by extending the CR's Tcl API.
There's tons of examples of this sort of thing.