Shorts and longs should cancel each other out. There's no possible way for them to run out of both USD and BTC. This is either a bug, or a huge problem. I think/hope this is a bug and will be solved soon enough.
I can see how they cancel out when leverage is 1:1; but not when it's 1:x.
To short, you have to sell BTC, and you need x times the deposited BTC to do that.
To long, you have to buy BTC for dollars, and you need x times the deposited dollars to do that.
I think.
When 2 persons deposit 100$. And one goes long for 10BTC, while the other shorts for 10BTC, Bitcoinica doesn't trade anything on Mtgox. If the market goes up by 10 cents, the guy who was long gets 1 dollar profit, while the other guy gets a 1 dollar loss.
When 2 persons deposit 100$. And one goes long for 100BTC, while the other shorts for 100BTC (So they are both using leverage), Bitcoinica doesn't trade anything on Mtgox either. If the market goes up by 10 cents, the guy who was long gets 10 dollar profit, while the other guy gets a 10 dollar loss.
If one persons liquidates (Either forced or manually), Bitcoinica does trade on Mtgox since they can no longer cancel each other out, unless someone else takes the opposing position again.