Just to clarify a possible point of confusion: @JMichaelTX and @CJK are both right about how local/instance variables behave. @JMichaelTX, you're talking about the list of variables shown in KM's preferences, and you're right when you say any local/instance ones don't show up there:
And @CJK, you're talking about the list of variables shown in the Insert Variable menu and Insert Variable by Name actions, where they do indeed stick around seemingly forever:
I imagine the latter behavior is done to, well, facilitate inserting variable names, and it is definitely useful for that. Personally, I'm okay with this behavior, as like @JMichaelTX, I manage my variables primarily from the preference pane and only use the Insert Variable actions sparingly, and usually the one that lets you type by name to narrow them down:
But I also understand and sympathize @CJK's annoyance at how any variable, local or instance or otherwise, can linger around permanently in some parts of KM like this even if the macro that contained them is long gone.