Adding mail addresses in UIDs does not only help finding matching keys (key lookups using mail addresses are more reliable as names tend to be used in variations (umlauts, abbreviations, middle names, ...).
Disadvantages I see in not adding mail addresses:
- Most well-connected people use tools like caff to sign keys and send those. Having keys which are not "linked" to a mail address breaks their use, and I guess quite a bunch of people will not perform the extra effort of manually sending out/uploading the keys.
- Key lookup will be more difficult and less reliable or completely fail.
- Users sending encrypted mail will have to select your key to encrypt to manually, assumed that's supported by their mail client.
- Chance of warnings if you're signing mail.
- Giving your mail address with a key, you're indicating that you're ready to receive encrypted mail with that address.
- You will not be able to get your key signed by cacert.org if you want to or upload it to PGP's key servers; they're doing some authorization using email.
- RFC 4880 defines including an e-mail address as convention (but does not enforce it).
Regarding your concerns for not using mail addresses in your UIDs:
- Avoid SPAM on the address
Could be an issue of course, but -- at least for me -- seems not to be. Since about two years I'm including two mail addresses not used otherwise, but they're posted on lots of key servers. I never received a single spam message on those to addresses (disclaimer: which got through blacklist filters and graylisting).
- I am using many different E-Mail addresses, too many to add them all as identities.
I do not know of a technical limit on the number of UIDs. And anyway; why not stick to the ones reasonable for receiving mail with, or only include the most important ones. No one stops you from using your key for sending encrypted mail with another mail address not included in the UIDs.
- Avoiding metadata, not everyone needs to know, with which addresses I want to use the key.
If people don't know you will be using OpenPGP, they will probably not use it. If you want to separate different kinds of identities (for example, private and work), think about using multiple keys instead.