Consider the following menu item:
Notice that the separator is "--" (between *Messages* and Next Buffer). Is there a way to change the separator? I would like to change it to "======" instead.
The separator is apparently set by menu-bar-separator, which is defined in subr.el:
(defconst menu-bar-separator '("--") "Separator for menus.") It appears to be a constant. Does this mean that it is impossible to change the menu bar separator?

defconstvariable, but the purpose of adefconstis to indicate to humans that the variable normally should not be changed by anyone or any program. In this case, as far as I can see, changing the value (at runtime, at least) does not change the behavior.