When deciding between
mouseup one can consider various practical impacts on UX. Different behaviour is usual for different GUI controls.
Some user actions could potentially be dangerous and that is why I think the button click action happens on
mouseup. Thus the user is able to rethink his intention, move the mouse away from the button and effectively cancel the action. The similar it is with checkbox and optionbox controls. On the contrary, clicking the header pane in MS Office does not imply any serious action or data change, as it only switches the selected toolbar pane. This is not very important action and thus it gets done as early as on
mousedown. The same it is with standard Windows tab control.
Sometimes the use of
mousedown action is practically necessary as with mouse drawing, text selection or drag & drop and resize manipulations. It is also possible to comfortably combine the select action with drag & drop action, e.g. in Chrome user can select a tab with
mousedown, see its content and then immediately start to drag it to another position in the tabs pane. Finally user drops the tab with
mouseup, so all of these actions are performed with only a single
mousedown can also spare some mouse clicks, like with app menus or some selectboxes: on
mousedown, user opens the menu and starts selecting the item with mouse move, while on
mouseup the item is finally selected. This prevents user from clicking twice - once when opening the menu and once when selecting the item.
mousedown is also practical when it is desirable to perform actions quickly. Imagine some settings dialog with a listbox containing several items. After clicking on each listbox item the displayed settings pane gets changed. As the displayed settings change on
mousedown, user can just hold mouse button and switch between listbox items (and displayed settings) by only moving the mouse, i.e. without the need to click multiple times.
Several GUI controls support some action happening after
mousedown and some delay. You surely know numberbox control with small buttons for increasing/decreasing the displayed number. When user does
mousedown on some of these buttons, after a small delay the number in the numberbox starts increasing/decreasing quickly. The same it is with up/down buttons on scrollbars.
This delay behaviour is quite similar to
keyup events. When some action is performed on
keyup and user wants to repeat the action multiple times, he also has to repeat the key press multiple times. With
keydown action it is enough to press the key once, hold it for a longer time and after a small dely the action gets repeated automatically (like when you hold the key 'a' and it starts to write many repeating 'a' characters).