Currently, Qt is abnormally slow to render semi-transparent layers. In GraphicsContext::beginTransparencyLayer(), we create a new transparent Pixmap and start a painter on it. In GraphicsContext::endTransparencyLayer() we paint this pixmap on top of the existing canvas. Creating the pixmaps, the painter is relatively slow. The big bottleneck is really the blending of the pixmap on top of what is already painted. For a site using transparent layer (like Facebook alerts), blending take more than half of the painting time.
I have compared the blending of the raster engine against the one of Core Graphics and Qt is competitive. The only fast solution I have found is to use OpenGL. In that case the rendering of semitransparent layers is not a problem. This is out of scope for WebKit and should be handled by the paint engine of Qt (or with a full opengl ES painting stack in WebKit).