Often when I make a change to a macro and then run it, the system runs the old version of the macro (does not execute my change). When I run it a second time, the existing macro runs.
Am I crazy, or is the previous macro contained in a cache of some kind?
Well, we are all a bit crazy these days, but it is very unlikely that KM is running a cached version of your Macro.
I've been using KM for years, and do a lot of developing/debugging. I'm always amazed that the instant I make a change to a macro and run it, the change is there.
More likely the prior version of your macro was still running, paused for some reason. Then when you think you are running the new ver, you are really just continuing the prior version.
So, to be safe, here's what you can do.
Create a Macro that cancels ALL Macros.
Run that before you run your Macro with the changes.