I think "CREATE USER ..." is for hostorical reasons and was used in PostgreSQL pre version 8.
The documentation of PostgreSQL 9.2 describes it:
CREATE USER is now an alias for CREATE ROLE. The only difference is that when the command is spelled CREATE USER, LOGIN is assumed by default, whereas NOLOGIN is assumed when the command is spelled CREATE ROLE.
On both commands SQL "CREATE USER ..." and the external program "createuser" the new user is allowed to login.