At the moment we return WT_DEADLOCK as a general "retry this operation" return. i.e in cases where applications don't actually generate deadlocks. The case where this can happen is if an application configures a tiny cache which becomes full due to a transaction spanning enough data to fill it.
This can lead to confusion for users who have applications they know don't generate deadlocks. I suggest renaming WT_DEADLOCK to WT_ROLLBACK. We need to keep WT_DEADLOCK to avoid causing pain for existing applications.