Depth is often used to stop infinite loops where a plugin updates a value which triggers the plugin to run again
A common cause of this is bad programming practise where a plugin retrieves the target entity and at the end of the plugin updates the entity.