EMAIL_HOST_USER (and password) are used to login to the SMTP server:
http://docs.python.org/library/smtplib.html#smtplib.SMTP.login
This step is optional -- not all mail servers require login.
The From address you specify when calling one of the Django routines to send mail is passed along as the from address when sending the mail:
http://docs.python.org/library/smtplib.html#smtplib.SMTP.sendmail
A "from" address is not optional when sending mail, so it has to be specified.
The question then arises, what does the SMTP server do when these two values do not match? A user has authenticated using one identity but then sends mail claiming to be from some other identity. Apparently some (at least gmail, I don't know how others behave, and as I said earlier this may be required behavior) just ignore the value set for "from" and use the authenticated identity as "from".
If you want to send mail that appears to be from your users, I think this will be hard to do if you are using an SMTP server that requires login. You will need to ensure all your users have logins on the SMTP server you are using, and you will need to use the Python smtplib routines directly to create the connection, login using the user's id and password, and then send the mail. (Django has only one setting for the SMTP login/pw -- EMAIL_HOST_USER and EMAIL_HOST_PASSWORD -- to use when connecting to the mail server, and I don't expect extending that to support what you are talking about would be high on the list of things to add.)
If you happen to be using an SMTP server that does not actually require login, though, getting what you are looking for may be as simple as removing the EMAIL_HOST_USER and EMAIL_HOST_PASSWORD settings from your configuration. Then the Django mail utility routines will not login to the server, and there will be no conflict between the logged-in identity and the From identity specified in the mail.
Karen