eZ publish does that to avoid breaking links - it will expire the old ones as soon as a new content object is published that will use that alias instead. I didn't realise it didn't take modules into account though. I'm not sure if there's an easier way to clear the old ones other than clearing the related items from the database table like you did.