Your ideas in the first post are excellent for keeping code clean and readable.
I second that IK to R is a nice feature idea, and there may be a few more like that.
Regarding other ideas, I think most will have to be customizable for each user. Probably a machine conversion table from some fixed starting format. Say a machine with a Fanuc 16/18 control and M-codes from a Mill and Lathe. Then for any given machine define any translations. They can be used in reverse to go back to the "stock" format then to the new one. Built in like mentioned in the first post can be on/off flags.
One nice feature I can think of is limiting max spindle speed WITH correcting the right feed rates. So program for your best machine but able to move it to your slower ones.
M90=M60 (Different M code for pallet change)
M12=M50 (Different M code for Thru spindle coolant)