The problem is that if someone passed in something besides a UsernamePasswordCredential object (i.e. MyLocalUsernamePasswordCredential), then that is lost.  It was explicit that was lost when you only got a username/password, but if we're passing you a Credential object, I don't think we want to lose the original class.