As far as I know, tables are never reduced in size. I suspect that this is because otherwise iteration and deletion would not work as expected. A table resize causes a rehash of the content which leads to a change of order of elements which in turn would then make iteration "difficult". This would make sense in the context that iteration via next() is not stable when elements are inserted into the table (which may cause a resize).
To release the memory of a table, you'll have to create a new one and copy the content.