What are the limitations of a Client connecting to the Network through TOR? I've recently been reading the Weaknesses Wiki page on "Attack on all users" and I came upon this statement:


  The IP addresses of most users are totally public. You can use Tor to hide this, but the network won't work if everyone does this.


Which implies that a Client connecting to the Network through TOR can't fulfil all of its tasks this way. What are the limitations of a Client connecting to the Network through TOR, as opposed to a standard connection?
The Bitcoin client is designed as a peer-to-peer network. To join the network, you need to make a connection to a node that accepts incoming connections. To protect against certain types of Sybil attacks, a client tries to make 8 outbound connections to geographically diverse nodes.

If you connect to the network through tor, you cannot accept inbound connections. You will consume 8 inbound connection slots that were available on the network (with the outbound connections you make), but you will not add any yourself. This can cause the network to run out of inbound connection slots, reducing the reliability of the network. The Bitcoin network, in the past, has had problems with shortages of available inbound connection slots. It's not clear exactly why, but one possibility is intentional malicious consumption of those slots.

The reason you can't fully trust clients that connect inbound to you is that an attacker can trivially consume all your inbound connection slots and all those connections can be from conspiring nodes operated by the same user. However, you have complete control over who you make outbound connections to.

In general, so long as at least one of your connections goes to a well-connected node that is not conspiring with all the other nodes you are connected to, you should be safe.