The bottom line is that AD needs a qualified user name for authentication. If you have multiple domains in a forest (or multiple forests), then you may not be able to assume that a plain username is unique as AD only attempts to ensure that sAMAccountName is unique domain wide, not forest wide. In your case, what if you had users in two different domains with username "johnm"?
What you can do is look up the user in the global catalog by sAMAccountName ( the plain name they enter) and if you only get one match, then get the userPrincipalName and use that in your bind.
As per ch 12 of the book, we don't recommend using DirectoryEntry for authentication purposes because it does not scale effectively. If you wish to do that though, you can use rootDSE as your path instead of using a specific domain partition.
There isn't much in the book that discusses multi-domain forests unfortunately but hopefully this fleshes out the details for you.