edit: Heavy IDE's haven't paid off for me yet. (I like to be familiar with every point of control in my environment. Hidden configurations have given me more headaches and stress than my personality can afford.)
Devil's advocates could certainly say I just haven't spent enough time learning IDEs.
I would respond with tangent rant about the virtue of owning ones means of production which includes knowledge. Knowledge ownership seems more obtainable when you must know how to do everything from the ground up.
a) Everything in one tool. Your servers can be right there, you have your code, your repository is directly connected, etc. b) It is actually is pretty good. If it wasn't so bloated I would use it. c) It is easy to train people to use eclipse, debug in eclipse, its all visual. d) Loads of plugins, again all in one tool.
Cons would be it commonly eats up over a gig of ram. It is slow. An expert in emacs can probably do most tasks quicker than an expert in eclipse.
In order: Edit multiple documents: Multiple buffers with buffer menus, buffer-name completion, etc. Syntax highlighting: See font-lock-mode Multi-level undo/redo: See emacs undo. Emacs does lack in the redo area though... Directory tree view window: See dired Find and replacs: C-M-$ or if you like regular expressions, M-x query-replace-regexp column mode editing: See rectangle manipulation commands in emacs. Natural word wrapping: See auto-fill-mode Spell checker: See flyspell-mode and flyspell-prog-mode which only spell shecks inside comments and program strings. User tools and macros: See elisp: One of the most advanced programming languages, integrated right into the editor. Furthermore, comint can be used to call any other program and manipulate output. Etc...: See emacs packages.
Etra: A complete programming language instead of the restricted macros in Crimson. Since elisp is turing complete, practically anything is doable, programs like GNUS, etc...
So... try emacs and see if you like it.