That would be a huge win for privacy, as it means they can't assume any addresses synced by a wallet belong together anymore.
You mean that the client should have a list of random addresses and always only query a subset of them, right? Because if you do that adding/removing random addresses manually, the chain analysis server should be able to apply clustering techniques (because humans are fallible and lazy and e.g. would always query the same "real" addresses ...), as long as you don't do this exercise every time you connect ...
Loading random watch-only addresses would also add an increased load on the Electrum server.
I'm not sure why, I think it's the same if you query a list of "real" or "fabricated" addresses? The load should depend on the entries in the blockchain index the server has to query. And it depends then which addresses you add, if you add addresses that were never used, then there would be nothing in the Electrum server database and thus no additional entries to query. These addresses would only perhaps add load to chain analysis servers, because they would store the list so they can add them to a cluster ... (that would actually be a good thing heh ...).
Loading random watch-only addresses would also add an increased load on the Electrum server.
That's easy: on your watch-only wallet with imported addresses to mix with your own addresses, freeze the ones that aren't yours.
Seems I was wrong with my last post ... Apparently you can create also a wallet with spendable private keys (not a HD wallet of course), not only a watch-only wallet, where you can freely import keys and addresses and also spend from them (in the cases where you imported the private key).
That would in theory make it possible to automate the process with a simple shell or Python script: each time you'd connect, as a first step it would interact with Electrum via the command line, create a new wallet importing some of the addresses from your HD wallet while still offline, then generate and create random addresses and import them (you could even download some used addresses from the last X blocks via a block explorer API importing them as watch-only), and then finally connecting to the Electrum server with this "mixed wallet". Each time you use this script, another mix of addresses would be transmitted to the server, so they can't apply any clustering.
Interesting idea, this could be possible for my skill level to try it
