Character-by-character undo is actually the reason I first started using Textmate. Most of the time, I don't want the editor to guess what I want to undo, I want it to undo each individual keystroke and action I made.
TM is just something "good enough" for people not wanting to go full on to either Vim/Emacs or an IDE. People one would call "newbies" back in the day.
There are many things I've found I like in TextMate that Vim can't do - character-by-character undo, for example.