Reuse of addresses by a service ("get new address" returning *funded* addresses) Recently, a marketplace was said to have been reusing deposit addresses, such that clicking the "get new address" button would immediately give the user a different address, however, the "new address" was sometimes already funded. 

Needless to say, this is terrible OPSEC, but I'm wondering how such an issue could arise. Is it a faulty implementation of BIP32? This seems more likely than reusing keypool addresses for bitcoind, but I'm curious how this issue could arise.
Keep in mind that the marketplace in question may not use bitcoind, and if they do, may not use it in the most sensible way. Some possibilities:


A list of addresses was generated. When it reaches the end of the list, it loops back to the beginning and reuses the old addresses, assuming that nobody should reuse their old one again. (this is a poor design: addresses should not be reused for privacy, and so that in case someone sends to an old address, you know whose is whose)
The addresses were generated with such low entropy that the same addresses were created and used again. (this is a serious security flaw in their setup)


In either case, it's possible that either...


the system records both accounts as owning the address (which is very bad, since you can both spend each other's money), or
only one of the accounts as owning the address. Which is very bad if the one owning it is the old one, since new funds are likely to be sent to the wrong person; or only slightly bad if the one owning it is the new one, since the old account owner may be inactive and should not reuse his old address anyway if he makes another deposit.


Regardless of the details (which you as a user aren't going to know anyway), it would make me very hesitant to use the marketplace, since it points to a dangerously sloppy design.