Using the "showspare" hooks or just the KeyPress hooks?

Are there any advantages or reasons to use GM:ShowSpare1 instead of just using GM:KeyPress?

To me it seems cleaner to be able to define all custom gamemode keys in one function instead of using different hooks for different F# keys:

function GM:KeyPress( ply, key )
	if key == KEY_F1 then

	elseif key == KEY_F2 then

               -- and so on

or is it preferred to use the showhelp or showspare hooks instead?

Showspare is advantageous on the user’s end because it means they can bind whatever key they want to it, instead of being forced to use the key picked by the developer.

Ohh, wait, I just realised that the KeyPress function doesn’t even use the KEY enums, it uses theIN_ enums, which the client has full control over in their keybinds anyway.