Drupal lacks an abstraction layer for handling anonymous users - Even worse: The fact that users and accounts are the same thing in Drupal unnecessarily complicates solutions that try to work with anonymous- and registered users alike. The core comment module illustrates this problem quite well and the contrib space is full of custom solutions that try to work around this problem e.g. for anonymous voting, CRM systems, etc.
Therefore, we propose splitting up the user entity into two separate things: Users and Accounts. This is synonymous for separating the authentication information from the identity of a user. We would thereby also pave the way for clean implementations of alternative authentication mechanisms.
The full proposal can be found at http://drupal.org/node/1806514.