More news on Cairo. I did some slightly deeper rearchitecturing and switched all of the drawing in outline mode to cairo (previously it was only for shapes), making all objects draw into a common cairo surface. Then I added a simple byte-reverser which converts the final buffer from RGBA to ABGR for PPC Macs and other big-endian systems. This had to be done only once per buffer render, so while Macs will render a bit slower because of that, the difference should not be significant. Jon Cruz reports that the byte-reverser works and outline mode displays correctly on again on his Mac.
Approximately the same thing needs to be done for normal mode rendering and then for all the canvas items (knots, handles, etc). This is A LOT more work, of course. Gradients, patterns, clipping, masking, filters - all of this holds innumerable surprises for an intrepid cairoifier. The canvas items are especially fun because all of them render into a 3-byte buffer (RGB without opacity, packed) which has absolutely no counterpart in cairo, and most of them are drawn by manual pixel-flipping via p += 3 pointers...
What mostly motivates me in this work is not speed gains (as I said, they are modest), but the reduction in memory consumption - and it is BIG. I loaded a complex drawing in outline mode in 0.45; top reported 222Mb total virtual memory. Then I loaded the same into current SVN - 118Mb, almost twice less! That's how bad our old renderer is. It not only uses insane amounts of memory but also constantly leaks it (see bug 1460453 for details). If we succeed in ditching the old renderer for the normal mode too, Inkscape will officially stop being a memory hog.
Update: Carl Worth has just told me that there are plans in cairo to support more buffer formats in the near future. Along with the bugfixes, this will make cairo much more attractive for us. Perhaps the switch will not be so much pain after all.