I don't consider this example very well written. In case that player element enters the colshape, and then disconnects, the inColShape[player_element] will never be freed, resulting in memory leak.
Besides, this code isn't restart-proof and can't handle more than one colshape.
You are right, the result would never be freed if an element is destroyed inside the colshape, and I'm working on the restart-proof code. By the way, The only reason why I didn't overwrite the function isElementWithinColShape is because that function check if the element is in a specific colshape, where as this function checks whether the element is in A colshape.