In the first one, you have to dereference the args in the function. In the second one, you don't. You'll have to write the function accordingly depending on which way you do it. It doesn't really matter which way you do it. I like to do it the second way, especially if I at all think I might reuse the function outside of Tk. Some people make the mistake of doing:
(-command => [\&function, $arg1, $arg2]);
Which
you seem to have recently done.