For quite some time after I moved away from AmigaOS, my impression was that shareware, and even some commercial software, was
extremely badly written, in that it crashed / hung far more often than I was used to.
Because the fundamental assumption on Windows / Linux was (and still is), "hey, if it crashes, at least it can't damage anything other than the document / file / project you're currently working on, the system will take care of it". To the point where people
on stackoverflow argue the point that you don't have to free() your memory before the program ends, because "the OS will take care of that".
In contrast to that, Amiga developers knew very well that a faulty program could not only take its own data, but
all data currently in memory, down with it, and that unreleased resources remained locked until reboot. Using tools like
efence while developing / testing your software came quite natural to them (whereas I've met quite a few Linux developers in the years to come who weren't even aware such tools -- like valgrind -- even existed, much less how to use them).
And disabling an Amiga's multitasking was quite easy, there were calls for that -- Forbid() and Disable(). You actually
had to do that, manually, for several critical activities that accessed global OS structures. Again, programmers were quite aware what that entailed, and made very sure their software would behave well.
Because software that didn't wasn't used by anybody, and quickly left by the roadside. While a crash now and then might be acceptable behavior on a protected system, if you
know you've got no second line of defense, you tend to avoid flaky software like the plague.