Why does `connect` perform worse than `addnode` for synchronization? I've manually set many nodes in my bitcoin.conf file via the connect= property.

I can see that, when run, bitcoind connects to most of these nodes successfully.

However, I never see any blocks being downloaded.  I can only get blocks downloading if I either change the connect= properties to addnode=, or remove the connect= properties altogether.

Does anyone know why this is the case?
If you use connect your bitcoind will exclusively connect to the nodes that you have specified in conjunction with connect.

When you use addnode your bitcoind will preferably connect to the specified nodes, but will also announce itself to other peers that are connected to them and try to make more connections.

The nodes that you had specified with connect might have been overloaded and therefore hadn't sent any data or even didn't accept the connection request. On the other hand, using addnode might have allowed your daemon to find additional peers that have seeded the data instead.