The biggest problem for consistency is model save() - there the signal are outside transaction control. I think we should change *every* place in Django to be consistent, or change none of them. So, lets deal with signals inside or outside transactions in separate patch.