Yes, most of the problems are in Haiku side. If you try using the PDF printer, which isn’t Gutenprint based, you will see that most of the problems are visible there as well (and possibly even more).
One of the problems is incomplete implementation of BPicture, which leads to some drawing operations in printed documents simply going missing from the output (one example is gradients, but there are more). I think Jua will be working on this in his app_server optimization branch.
Even when we get BPicture right, there is still the problem that each driver must "play" the BPicture and get the result into a format suitable for the printer. Basically this means the driver must implement all the drawing itself just like app_server does for the screen: drawing lines, gradients, texts, transforms, etc. And unfortunately, most of our drivers aren't doing the complete thing yet, which gives some unexpected results.
So, Gutenprint is probably ok, the problem is that too many things get lost in translation between the drawing commands the software sends, and what we ultimately feed gutenprint with. Some cases work better because the software just sends an already rendered bitmap, which is the easy case.