One issue with just using a public key everywhere is that the most common public key authentication protocols result in some degree of non-repudiability. This is desirable for signing in to a bank but not for potentially embarrassing sites. I guess the cryptographic community might already have an answer to this, though.