If this is true and PHP extensions run shell commands in the background, why not just use
shell_exec instead? Would there be any difference? I'm under the impression that PHP extension are usually written by newbs because they are full of bugs. For example the imagick extension :/ So why not communicate with the library directly?
No, absolutely not. Most PHP extensions interface directly with a C library, and imagick is no exception.
The shoddiness of the imagick extension is entirely the fault of the ImageMagick library itself.