Changing a user from being linked to a login to being without login I can create a user like this:

create user [foobar] for login [foobar];


I can also create a user like this:

create user [foobar] without login;


Is there a way to change a user that was created with the first method into a login-less user as though it had been created with the second method? 

It seems that the opposite isn't possible (i.e. mapping a login-less user to a login) and it's not immediately clear to me why that would be the case. So if anyone can shed light on the reasons for that as well, I'd consider it a bonus.
There is no method of directly altering a user to be loginless.  Having said, you could simply drop and recreate the login:

DROP USER foobar;
CREATE USER foobar
WITHOUT LOGIN;


Of course, you'd want to gather details about what rights the user has prior to dropping it, so you can recreate those permissions after the CREATE USER statement.

Attempting to connect a loginless user to a login, via the following syntax:

ALTER USER foobar
WITH LOGIN = foobar;


Does not work, contrary to what I reported here previously.  That attempt results in the following error:


  Msg 33016, Level 16, State 1, Line 5
  The user cannot be remapped to a login. Remapping can only be done for users that were mapped to Windows or SQL logins.