SDL_BlitSurface forgets to blend alpha (longstanding bug?)

If we use SDL_BlitSurface to blit RGBA->RGBA, the alpha values are not updated and destination alpha remains, and we get quite fancy results trying to blend one image onto the other, that source image is cut by destination alpha, which produces unwanted holes.

I think expected behavior (way it works in OpenGL or Photoshop) is also to update alpha value not just color:

dest_alpha = source_alpha + dest_alpha * (1 - source_alpha)

This stands in the sources:
RGBA->RGBA:
SDL_SRCALPHA set:
alpha-blend (using the source alpha channel) the RGB values;
leave destination alpha untouched. [Note: is this correct?]
SDL_SRCCOLORKEY ignored.
SDL_SRCALPHA not set:
copy all of RGBA to the destination.
if SDL_SRCCOLORKEY set, only copy the pixels matching the
RGB values of the source colour key, ignoring alpha in the
comparison.

I guess [Note: is this correct?] makes it reasonable to think there’s something wrong with it? Surprisingly SDL works like that since long long time, I can even find some posts about this problem dated 2002:
http://osdir.com/ml/lib.sdl/2002-11/msg00405.html
http://lists.libsdl.org/pipermail/sdl-libsdl.org/2003-July/036714.html

Cheers,–
Adam Strzelecki