I know: /hdel -w <hash table> <item> <data>*
doesn't work. (obvious I know)

However, if you know which items are going to have something* in it, you could put these on a timer/unset mode. ie:

hadd -mu50000 <table> <item> <data>

Now, since these are on a unset timer, they will not save to a file when you /hsave (unless you specify -u).

So if you needed to get rid of the something*, and you put them on a unset timer, you could /hsave -o, then /hdel <hashtable> *, and then /hload the information.

( Instead of using the standard /hadd command in your script, you could write a seperate alias like so:
alias _hadd {
var %table = $1 , %item = $2 , %data = $3-
if (something* iswm %data) { /hadd -mu50000 %table %item %data }
else { /hadd -m %table %item %data }

Just use that to add stuff to your hash tables, it'll automatically detect the "something*" and put it in the unset list.

Hope this helps. Good luck.