No - it's a design flaw to be paying transactions with transactions that will never commit ... if they are double spends.
There's no good way to know if a transaction will ever make it onto the blockchain. Even if you see it in a block it's possible that block will end up orphaned, and the transaction could end up being invalidated by the block which replaces it.
No but you expect what is likely and ignore what is EXTREMELY unlikely.
BTC was designed well ...
So if you want to be able to pay out winners without waiting for a bunch of confirmations, you're sometimes going to be at risk of paying out using transactions which will never confirm. Unless you have a big enough hot wallet that you always have some old coins sitting in reserve to pay people out with.
When you have the kind of volume that SD has, I guess the coins in your hot wallet don't have a chance to get very old.
Again, you've missed the point ...
I know how 0confirms work (and that SD uses 0confirms)
The point is "if" SD takes note of problems and stop propagating them or not?
The SD code is not based on the bitcoind code, so they may or may not have handled txn processing exactly the same and may have missed simple checks to avoid this?
Yes a double spend cannot be identified immediately, but it is certainly known VERY soon afterwards otherwise the double spend WONT work (I'm not referring to a "block withholding" double spend)
So SD should be keeping an eye out for such things since it does 0confirms - to stop going into a spiral of uncommitted transactions that will never commit.
Once a true double spend actually occurs, all the transactions based on the first failed txn of a double spend transaction, will NEVER commit. ever.
... and a double spend done by withholding a block is a very risky thing to try since you can lose 50BTC if you don't time it right ... and it is not something you can do often or easily and certainly wont make you lots of money with SD ...
All in all, double spends are extremely unlikely to cause anyone problems unless they don't keep track of transactions properly as is done in bitcoind ... and is also a good reason to write software that is a module added onto the standard bitcoind code ... it's very easy to add a module of code yourself ...