This posting is older than 6 months and can contain outdated information.
Thanks for asking.
I can see how you could use any combination of double clicks, "click
gestures" etc. to make more functions directly accessible on each
respective button.
All of that does come at a price, though:
1) It'll add long lag times. Since, after a single button press,
you'll never know whether a second won't follow - and then, not about
how long it'll be pressed. With all the timeouts necessary combined,
you'll end up with a 1 to 1,5 second lag on your button presses.
2) Also, what if you'd like to f.ex. jump to the next song in iTunes
(quick right click) and then fast forward (long right click)? With
"click gestures" support, it'd neither jump to the next song nor fast
forward on it. It'd do something else.
3) It's hard to remember more than two functions per button.
4) All in all, I think it's counterintuitive. Just like in 2), you'd
have to always remember to make pauses between button presses, so that
they aren't grouped together and do something else. Not only is that
error prone, but that again, adds more lag. Imagine if you had to
concentrate and think from the program's perspective for each button
press and the pauses inbetween. In consequence, you'd end up with a
lot of actions being performed that you didn't want to perform, a lot
of actions not being performed that you wanted to see performed and
due to all the timeouts that needed to be involved, you might only be
able to trigger a new action every two seconds or so.
To conclude:
It may be technically possible. But I myself wouldn't want to use
anything such due to the usability issues that it brings along.
Best regards,
Felix Schwarz