I would suggest a fourth option be added to the menu in the bulk editor: "ignore", which would function as "undefined" does now, so that "undefined" could function as it does in the individual editor.

A good idea, but one that would require a rather large rewrite. The current code uses tri-state booleans, which by definition means that one of the states must be coopted to mean 'don't change this'. As you point out, that coopted state is 'undefined'. Fixing this requires changing to a quad-value text box, adding what the OP called <keep> as the fourth option. Not impossible, but not totally trivial either.