After a quick test (because I don't know the answer) The only difference I can see is with the [Authentication_Type] and [Authentication_type_desc] in sys.database_principals.
name authentication_type authentication_type_desc
---------------------------------------- ----------------------------
testLogin 1 INSTANCE
testUserNoLogin 0 NONE
My test code:
use junk
go
create login testLogin with password = 'testLogin', check_policy = off
create user testLogin for login testLogin
create user testUserNoLogin without login
select name, authentication_type, authentication_type_desc from sys.database_principals where name like 'test%'
go
drop user testUserNoLogin
drop user testLogin
drop login testLogin
go
Be One with the Optimizer
TG