Ladder is a graphic representation of Boolean logic. The compiler takes these graphics and creates Boolean. It made a mistake with a rung that was 3 levels deep with 3 parallel outputs. Poor programming practice in my opinion. The example given should be split into 3 separate rungs for ease in readability and troubleshooting.
In any case, this fault would easily be discovered during test, because the final Boolean was wrong. It was solid, not some strange random fault that would occur after shipment.
I think stopping all downloads and sales of products was an overreaction to a minor bug.
I recently shipped two products to a customer. Simple program - about 30 lines. It was likely they would need to do some final customization. I chose the Click over the DL05 because software was free. They couldn't download software, so units had to be sent back to me for updates. The customer also got the notice after contacting AD, and put me in the position of defending my product and the Click units.
Thanks, AD, for going crazy over a minor bug. If it took 2 years to discover, it suggests 99.9% of the world was doing fine until someone, probably a student, tried to write his entire program in one rung.
My perception is obviously biased, and I'm open to corrections.