If you "undo" the mutation of a procedure (deleting an argument you just added), sometimes the calls to the procedure still keep the deleted argument, and you have to delete the existing calls to the procedure, and drag new calls from the procedures drawer (now without the argument).
But other times the procedure disappear from the procedures drawer
The calls to the procedure are defined after the procedure, so if you want to use undo to delete a parameter (argument) you have to continue your undo to remove it from the calls.
So, it is not the best use of undo. Instead, just open the procedure and delete the parameter.