The importance of key arguments will become apparent when you realize that you can define a lot of them, provide reasonable default values and only override the ones you're interested in changing in a particular instrument call. Furthermore, key arguments are not positional and can be defined to mean something so that instrument calls are self-documenting if the names are well chosen. Whatever you want to control you have to turn into an argument to the instrument. Try to avoid them. Sometimes they are the answer but most of the time you want to make the relationship of arguments to behavior of the instrument very explicit.
Global variables hide behavior and make bugs difficult to find.
This is where the actual executable code resides. Our simp instrument has just one form in its body. All lisp functions return a value. The returned value can be anything, a number, a list, a string, you name it. It then proceeds to evaluate all the forms in its body with those bindings active.