As someone who does this stuff... there's a lot that can go wrong in programming that isn't the fault of the guy that writes the code. Pre-production and software architecture account for a lot, too.

It's fully possible that the specification which the previous devs implemented did not foresee the need to query whether or not a buff already exists before a spell takes effect. The dev who actually implemented it is probably biting his tongue to keep from saying "I told you so! I told you so!" (or the equivalent saying in Japanese, if there is one, anyway). The technical slang for this issue (if it is this issue) is Broken As Designed.

That said, it's never impossible to code around these issue, but it might take someone three days to kludge around the bad code - and the addition of those kludges makes the bad code worse. It's a matter of triage.

The only cure for BAD is to throw it all out and go back to the design phase and take it seriously. It sounds like they've already done that - with three months doing specifications for 2.0 before allowing a single line of code to be written. Hopefully little details like this one weren't lost when designing the second time.