As for variables destruction
1) Engine returns 0 on any unset integer variable. Setting variable to 0 is equivalent to unsetting variable. At least permanent variables stop being saved like that.
2) For strings its setting string to "" that removes it. Interestingly this fails via @setvar server command, just because command can not swallow empty arg, but it works in script code.
Per-player TEMPORARY variables (@variable) aren't such a big deal. Even if you do not clean it, it would take some bytes, but it only that many bytes - on that player. And once player logs off, all their temporary variables vanish. Some of @vars dynamically set by server on the fly, to hand over some event related data -> invoked script when server throws event (both native server code and scripts can throw NPC events).
But PERMANENT per-player or per account variables? (ones without prefix, or #variable) No, no no and no, unless you REALLY need to store persistent, per-player state and it brings some gameplay improvement. Especially if that set for each and every player. TMWA got almost 300 000 accounts, all their persistent vars are loaded to RAM. Its something to remember. This CAN eat RAM.
Per NPC variables (.variable), once set, live until server restart. Or until NPC destroyed. TMWA got some funny extension, puppet() builtin that duplicates NPC, so it inherits structure of its parent npc(tmw port to herc and ML got comparable extension). But its separate NPC - with separate set of npc vars, events, timers, sprite, location, name, etc. And destroy() call can be used to destroy NPC. When NPC destroy()'ed, its timers are cancelled, its events are no more, and all variables go away. So instatiating temporary npc, doing some things, and then destroy()ing it can be a thing. Furthermore such thing can live detached from player, e.g. some spells do that. Care should be taken to not destroy() important NPC. Its possible to issue destroy() on e.g. "template" npc or even unrelated "persistent" NPC, this would obvuiusly cause bugs. Other than that it can dub as funny way to do plenty of cleanup in one shot.