The difference between wipe(table) and table={} is that wipe removes the contents of the table, but retains the variable's internal pointer.

data={1,2,3}
copy=data
assert(copy==data) -- they're the same object
copy={}
assert(copy~=data) -- they're no longer the same:
assert(#copy==0) -- the copy is expectedly empty,
assert(#data==3) -- but the original table remains.
copy2=data
assert(copy2==data) -- they're the same object
wipe(copy2)
assert(copy2==data) -- they're still the same object:
assert(#copy2==0) -- the copy is expectedly empty,
assert(#data==0) -- and so is the original table.