The exploit comes from the fact that the calculations and assignment of creatio nof items all happens at the moment that the apparatus and/or recipe is disturbed. The options are to either use SetCommandable to make it impossible to leave until the crafting was done (crippling to the PC), it can prevent other kinds of crafting (which it already does), or it can delay the production and calculation until the item is supposed to be done, when it might check location and current action (sounds great in retrospect, but at this point we're looking at a major reworking of the fundamental structure of the system then. Might as well just write a new one if we do that.)
So, basically, +1 to what Jawwagner said, 'cept I can say "I know exactly what would need to change, and it's not worth it."