When the destination rectangle is clipped the result is stored in $dest_rect. This is documented in SDL::Video::blit_surface, but not SDLx::Surface::blit (both use SDL_BlitSurface). So, this should either be documented, or a copy of $dest_rect should be used to prevent modifications.
We actually had discussed this before. We decided to document it until we made an option in blit to not change dest_rect.
Documented in 905138e