Ok - first off, a serious facepalm on my part -- USERNAME in REQUIRED_FIELDS should absolutely be an error, not a warning. The uniqueness of USERNAME_FIELD is the check that is a candidate for being relaxed.

Secondly, I think your approach you describe here is a good one -- if you're in the edge case that I described, you'll have to be using a different auth backend, so checking for a unique usage of ModelBackend is a good basis on whether to use error or warning. Thanks for the excellent suggestion.