Blockchain.info shared send does not use coinjoin. It is another inferior centralized service. Coinjoin uses standardized outputs. So if bob puts in a 5 BTC input and joe puts in a 2 BTC input and there are seven 1 BTC outputs which ones belong to Bob and Joe.
Well if bob has 5
BTC that he wants to mask the ultimate source of the inputs, and he receives five 1
BTC outputs to five different (previously unused) outputs then, based on the fact that I know that a very high percentage of people that use bitcoin are not able to properly manage their security/privacy/ect., I would say that there is a good chance that he would eventually sign/broadcast a tx that contains inputs from the 5 output addresses that he received funds from. Even if Jane did not make the same mistake then an adversary could determine which of the outputs belong to Jane based on Bob's mistake. If you were to have a larger set of people participating in a transaction (say 5 or 6 people, with a total of 40 or so
BTC being transacted, with 1
BTC outputs) then it would still be possible to determine which outputs belong to who if enough participants make a similar or other mistakes that would allow an adversary to determine which outputs belong to the person they are looking for (with a reasonable amount of certainty).
Any time you want to participate in coinjoin or any similar variation then you will need to use somewhat of a centralized service/meeting place that uses some level of automation. Otherwise it would take too long to find a sufficient number of participants and you would waste a lot of time in waiting for everyone to sign their part of the tx, and would likely have many instances when one or more of the participants will not sign the tx. As an experiment, prior to writing this post, I used blockchain.info's shared send (which should give a rough approximation as to how long a coinjoin tx should take), and it took roughly 2 minutes and 30 seconds from the time that I 'authorized' the transaction on blockchain.info and the time that my instance of armory picked up the output transaction, while this probably would not seem like very long, I would estimate that if you were to broadcast a transaction to an address that my instance of armory is "watching" then it would take my instance of armory only seconds to pick up the transaction.
Although it is somewhat no longer relevant, I did take the time to find the article I was referencing in my previous post regrading the privacy of blockchain.info's shared send being broken, but for some reason I did not post it. So
here it is