Given that the dependency plugin can calculate dependencies, rename them and copy them to a location - why is the assembly plugin necessary? I find the Maven docs dense and I don't really interact with it much unless I'm running a build which is just a right-click in Eclipse.
But the assembly is actually a plugin rather than a goal, right? From http://maven.apache.org/plugins/maven-assembly-plugin/ : "The Assembly Plugin for Maven is primarily intended to allow users to aggregate the project output along with its dependencies, modules, site documentation, and other files into a single distributable archive."
Assembly is a plugin that provides a goal. "Plugin" is a bit of a misnomer sometimes. Eclipse, for example, is virtually nothing but plugins, but we tend to think of it as a unified whole. The Tomcat webapp server is pretty much the same thing, only less likely to see mods to the core plugin set.
One of the things I dislike about Maven is that it's "magic". That is, unlike Ant, where you can plainly see a process flow, in Maven, you specify a goal and Maven handles everything automatically, and more or less invisibly. So, for example, the Assembly plugin internally triggers the Dependency plugin as a pre-requisite step in the process.
This isn't always automatic, however. The reason why I have to say "mvn compile war:war" is that the war:war goal does not automatically invoke the compile goal and I have to do it manually. I'd be less happy about that except that a "mvn war:exploded" goal also won't invoke compile and that means that an on-the-fly reassembly of a webapp being debugged won't automatically replace all of the running classes (which usually ends up badly).
Incidentally, I just looked at the Dependency plugin, and it appears to be mostly for detailed dependency analysis and control. Actual dependency resolution - as far as I can tell - is part of the Maven core. Or at least, it doesn't show up as a visible sub-goal when I do a build. It may be a sub-function in the resources plugin, although the docs don't say so.