Correct me if I'm wrong but I really don't know any use case where I would want to cut a single character with the
delete button and paste it.
The default behaviour of
delete is the same as
x. Then it always overwrite the default register... (It ticks me every time I make some manual search and replace)
So here the simple solution:
nnoremap <Del> "_x
del really delete the character ! And if really someone want to cut one character he/she can do it with