You can set delete-active-region to t; hitting DEL will then delete the region without adding it to the kill ring (i.e. delete it as opposed to kill it.) Alternatively, you can bind delete-region to a keystroke of your choice.
Regarding your second issue, I'm happy with the undo system as it is, but if you're not you could try and see if this works better for you: http://www.emacswiki.org/emacs/UndoTree
Also, instead of cursor motion to "break" the undo operation, you can use C-g. I.e. C-g C-_ will redo (undo the last undo) rather than going back further in the undo history.
Regarding your second issue, I'm happy with the undo system as it is, but if you're not you could try and see if this works better for you: http://www.emacswiki.org/emacs/UndoTree
Also, instead of cursor motion to "break" the undo operation, you can use C-g. I.e. C-g C-_ will redo (undo the last undo) rather than going back further in the undo history.