If the keyboard mapping may be user defined we need many free keys. To many functions are never used via keyboard because nearly no one can remember so many combinations. We need keystrokes for actions that are executed often, and the flexibility for the user to add keys for actions that he needs in a special situation.
2) Keystrokes should be independent from the current selection.
If an action depends on the type of selection (e.g. number of vertices, objects) it should be performed via a context menue (RMB) or via another menue.
3) Keystrokes should be as far as possible independent from the context.
E.g. selecting in the different modes and windows should be consistent, also moving of objects, numerical input and the like. This is something blender already handles very well.
4) We need only very few keys for working with files.
Most of the file actions are better accessed via menue anyway. The only file actions that has to have a keystroke are "File save" and "File save as". The files of a user are sacrosanct, they are the most precious thing the user has, and it may never ever happen that the user looses data unintentionally (even his user preferences). Every file action has to give a visual feedback before it is executed.
5) Unmodified keys
should be reserved for direct editing functions and changing between modes.
opens a menue.
clears either the action of the unmodified key or of the Ctrl-Menue.