Mapkeys can be as simple or complex as you want.
As you indicate you already seem to have planned longer input strings so you can EA??
eaDI for adding Diam Symbol or eaRE to add the () for Ref Dims or use Parenthesize Ref Dims option
this allows you to get reaally specific with what each does which is good.
Important to note are the following radio button controlled options.
When recording the Mapkey there are 3 options for what to do at prompts * indicates default setting
(*) Record keyboard input
( ) Accept system defaults
( ) Pause for keyboard input
Choosing the lowest option may solve the delete issue you are having with your mapkeys.
Check to see if this helps fix your problem. I usually use the pause option but never really investigated the others too much. You can always edit the mapkey via a text editor to fix the auto recorded stuff. Also adding pauses into the mapkey can allow user to remove unwanted text as they play through the mapkey. Dales posted link to the other post of mine gives more info in regard to Mapkey Pauses.
Michael