I suspect that this is highly related to the task being done, and the context.
Some days, I'd totally agree with you; I'm not really sure of the next step(s), and have to give myself lots of time to think about things. This tends to apply when I'm entering unknown territory, and my tasks are relatively fuzzy and uncertain.
On the other hand, some tasks are extremely straight-forward (repetitive / memory-based), and more or less completely WPM and flow-bound. Even working with relatively efficient editors (using shortcuts, macros, VI bindings, etc), it's hard to type out (or otherwise input) much more than 2000 lines of code in a day. These types of tasks certainly require efficient input, and could be greatly enhanced by even better human-to-machine interfaces.
(I'm also a programmer, and these do come from my own experiences)