TextEdit key bindings modified in DefaultKeyBinding.dict stopped working
The problem was that I had moved the actual DefaultKeyBinding.dict file somewhere else for version-control purposes and symlinked to it.

Most apps were loading the file through the symlink, but TextEdit (and, it turns out, a couple other apps that I thought just didn't support key bindings) must do something different and didn't see it.

So, oops, lesson learned. Don't symlink your system configuration files.