The functionality of a value in a custom field pick list is such that one cannot delete the value as it is "in Use". This same behavior should be extended to Custom fields and custom tables. The functionality should show "In Use" and when on clicks on the "In Use" prompt user to confirm the deletion as associations exist. To day we allow the customer field or custom table to be deleted (too easily) and as such 1000's of associations can get disassociated accidentally. As was the case when a custom table was mistakenly deleted.
The ability to hide a Custom Field or custom table should also be a behavior to stop users from continuing to use said object / attribute until the associations can be cleaned before deletion.