By the way, one way to let me send coins to
gavin@acm.org is to leverage the old direct-to-IP mechanism. Example:
1) Download EC public key from
http://acm.org/bitcoin-transact/gavin. Optionally, if that results in a 404, fall back to
http://directory.bitcoin.org/acm.org/gavin2) Create a transaction with <pubkey> OP_CHECKSIG as the output, broadcast
3) Gavin claims it by sending a tx with just a signature in the scriptSig.
All clients should still be able to recognize these sorts of transactions. All we've done is replace the direct IP-to-IP connectivity with a well-known HTTP endpoint. Supporting this scheme is as simple as creating a directory on a web server.
It can be extended to include not just an EC key but an RSA key in the downloaded file too. Then you can send a message by encrypting it, POSTing it somewhere (like back to the acm.org server if the downloaded file advertises that it supports that), and including the hash in the transaction before an OP_DROP. This way even though you only advertise a single key, you can still find out who sent you coins.
I'm not claiming this is easier or better than having some simple web browser integration mind you. It'd still require some setup and ultimately copy/pasting a BitCoin address isn't much different to copy/pasting an email address.
I suspect there's various interesting ways you can avoid relying on base58 addresses using the scripting language.