Hardware accelerated blit

I’m writing a Glide backend for SDL, and I’m confused by some of the
internals. In particular, SDL_CheckHWBlit() apparently “Sets the
hardware accelerated blit function, if any, based on the current flags
of the surface (colorkey, alpha, etc.)” (SDL_sysvideo.h:98).

In the DX5 driver, this function appears to have no purpose. It sets the
HWSURFACE flag on the given surface, but only after that flag has
already been read by the calling function (SDL_CalculateBlit()). It also
sets the HW blit function (DX5_HWAccelBlit()), but only after that
function has already been read by the calling function (again,
SDL_CalculateBlit()).

Am I going crazy? Or is this completely arbitrary?

MJP