This may be the first time anyone ever accused Emacs of being unfinished. =) In this post, I'll address Emacs as an editor, rather than as platform.
The fact is that Vi(m) and Emacs are hardly comparable. They are both text editors on the surface, but usage patterns are very different, and those only seriously familiar with one often feel like the other is a cheap knockoff of it. The reason there are holy wars about Emacs vs. Vi is that once someone really groks the way of editing with one, it doesn't cleanly translate to the other -- they espouse different approaches to thinking about text editing.
All that said, most users of Emacs customize it, and most professional coders take the time to customize their environment, so the population sampled in Coders at Work may be biased. Sysadmins and other professionals that work across a variety of systems doing tasks that only partially make use of text editing will tend to use Vi: it is part of the POSIX standard (so it is "everywhere"), and it is extremely fast to startup and shutdown, and offers blindingly fast editing for a pro. I'll give you two examples of how usage patterns differ that I've noticed in my work.
Vi users love how fast it starts up, and don't like Emacs' comparatively slow load time. Emacs users keep an instance of Emacs running and use emacsclient to dispatch editing tasks to the running instance, which is as fast as Vi, since Emacs is already running. A different way of thinking.
A Vi user will ssh into a remote host and run Vi there, happy that every system has Vi. If they try to run Emacs, it won't even be on the remote host a lot of the time, so Vi is the obvious choice. An Emacs users will run his or her Emacs session locally and use a mode like TRAMP to edit remote files locally, so Emacs doesn't have to be on the remote host. Again, it's just a different way of thinking.
I know it was just an example, but when I need to copy a word in Emacs (which isn't all that often), I kill it and yank it back: M-d C-y.