It now requires a couple of confirmations.
o reduce the double spends significantly for 0 conf transactions.
I don't think that's true. In recent blocks I see some bets and payouts occurring within the same block. Also, see this statement from the site operator:
And if there are any material changes to how it works that would affect your bets, we will absolutely post it here.
I outlined some potential attacks on SatoshiDice in another thread. Perhaps one of them would meet your needs:
1. Simple race: Try to connect to SatoshiDice as directly as possible, and as soon as you receive a losing payout, send a double spend of the bet transaction to any parts of the network that have not yet seen the original bet. The site could prevent this attack fairly effectively by introducing a small delay and sending the original bet transaction to as many nodes as possible (especially mining nodes).
2. Finney attack: Generate a block that contains a payment to yourself but don't distribute the block. Send the same coins to SatoshiDice. If you lose, distribute the block and reverse the losing bet. If you win, don't distribute the block. This attack requires you to give up the block reward in the case of a wining bet, so it is only effective if bets can be high enough. With current bet limits, it could be marginally profitable. If bets of say 1000 BTC were permitted, attackers would be all over that.
3. Mining attack: Place a bet as usual. If you lose, try to put a double spend of your bet transaction in the next block you generate. With a few percent of the network hash power, you could overcome the house edge and make a profit. Any decent sized mining pool could profit from this attack now, regardless of betting limits.
4. Duplicate transactions: It is possible for the same transaction hash to occur more than once (see BIP 30 for details). Since the result of a bet depends only on the day's secret and the bet transaction hash, it is possible to place a bet and if it wins, repeat the same bet again within the same day. For example, prepare some transactions as follows: Mine a block with address A, then send the coins to B, then to C. Mine another block with address A and send the coins to B. Mine another block with address A and leave the coins there. Now you can send coins from C to SatoshiDice and if the bet is a win, place two more bets B->C->SatoshiDice and A->B->C->SatoshiDice. The site could prevent this attack easily though (perhaps even unintentionally, if it uses transaction hashes as keys in a database to determine whether a payout has been sent).
5. Bet transaction that won't confirm: Intentionally construct a bet transaction that miners won't include in blocks due to fee rules. Then after you see whether you won or lost, you have plenty of time to mine your own block that includes either the bet and payout transactions or a double spend of the bet transaction. Of course not all miners follow identical rules so you may not have an arbitrarily long amount of time to mine the block, but it makes the attack much more feasible and profitable than if you had to mine the very next block.