Let me start by saying that I've just fallen foul of the duplication issue in my current project review, this isn't intended as an appeal but rather a request to understand the issue more widely.
I'll explain how I duplicated and why so you can understand where I'm coming from, and then phrase a couple of questions that I have that hopefully will clear a few things I'm not quite grok'in.
The Dupe
I submitted a theme for review with a feature included that allowed a header image to be uploaded from the theme settings. I was searching D.O. for a solution to uploading in this way when I found the Noggin module.. which did the trick nicely. However, I wanted the functionality to be within the theme rather than in a module, as to a "user" this would make most sense (from a UX perspective). Plus the intention was to extend it to include other images than just the header.
So taking a bit of time, I reused the modules code to add the functionality to the theme, at the time I was aware of module duplication being bad but did not deem this to be a duplicate of a module, as it was a theme. No way along the process did I claim or give the assumption that the code or functionality was radically different from the Noggin module.. so yes, the code was duplicated. Another interesting point here is that the Noggin module was originally code for Bartik, but it was too late to make it in (ergo, was originally intended to be in a theme.)
The Issue
Now this is where I get a bit foggy in my understanding about duplication within Drupal. [opinion on] I can see that straight module to module duplication will just lead to an over-crowded mass of half used modules, but reuse of code for another purpose or setting would seem to be acceptable due to everything being GPL'd.[opinion off]
That opinion, would seem sensible to me, but doesn't seem to be what's happening with Drupal.
The Questions
1) Are modules and themes treated as the same?
Themes are intended for "presentational" purposes, modules to extend functionality. However, is there a line that says xxx functionality can only be in a module if a module (of that nature) is in existence.
2) How is the line drawn between code duplication and reusing code?
I'm not an advocate of a "one way" to do things, but also think it's important that the wheel shouldn't need to be reinvented everytime someone wants to include a feature.
3) If duplication is generally bad, how can there be a snippets area within the docs?
It seems a bit contradictory to encourage users (new and old) to share, contribute and collaborate, but then throw in a caveat that their end result should not be published as it's a duplicate. Or even "thanks for all your work, however x module does that bit, so submit a patch over there". (note: i do see the benefit of supporting current modules and collab being a good thing for the ecosystem).
Thanks anyone who has the time to let me know their thoughts on any of this