The general workflow for button assignments is:
In the pull-down lists, spell lines will be sorted alphabetically. There's a blank entry at the top that when assigned to a button makes the button do nothing. By default, all buttons start out with that blank entry assigned to them until you change the assignment. Note that after editing spell lines, button assignments will be updated to reflect any deleted spell lines. Buttons assigned to a spell line that's been deleted will be assigned the blank entry.
The state of button assignments reflected in the window is only the current state. There's a separate persistent state corresponding to the saved state on disk. The persistent state is only updated to reflect the current state when you use the Save button, when you generate a UI code file, or when you exit the program. You can use the Revert button to revert the state of button assignments back to the last saved state. That gives you some measure of control over things and gives you the option to undo mistakes to a point.