stackable just means that you can have more than one binding for the same trigger.
from tcl-commands.doc:
Some bindings are marked as "stackable". That means that you can bind
multiple commands to the same trigger. Normally, for example, a binding
of 'bind msg - stop msg_stop' (which makes a msg-command "stop" call the
Tcl proc "msg_stop") will overwrite any previous binding you had for the
msg-command "stop". With stackable bindings, like 'msgm' for example,
you can bind to the same command or mask again and again. When the
binding is triggered, ALL the Tcl procs that are bound to it will be
called, one after another.
apart from that there's nothing different between a stackable and non-stackable proc.
One thing to be careful about in stacked procs though, is that the output of one proc won't effect what another proc bound to the same trigger will do. Eggdrop might not necessarily call the procs in the order that you want. Usually its best to try and avoid stacking, and just expand the proc already bound to that keyword. There are performance issues either way though when you start introducing wildcards (eg a bind mode * and a bind mode "* +o" - which is more efficient, writing everything into the full wildcard and not using the second at all, or splitting your procs by mode? depending on the complexity of your procs, it could be either, so be sure to do some timed tests if speed is of an issue)