Makes me wonder why they didn't decree, "no using a register called ^g, that's a special character" and add a check when specifying a register. I bet it would break fewer workflows.
Well, exceptions for C-g shouldn't have to be hardcoded everywhere, because that makes it harder to move the C-g behavior to some other key. If going this route, I'd first implement a list of "keys with C-g-like behavior" that can be given more members than just C-g, via a startup flag or some such.
Then commands could just reference that list if needed.