This is by design. This article KB article describes the behavior (also for Request.End()and methods Server.Transfer()).
For Response.Redirect()there is overload:
Response.Redirect(String url, bool endResponse)
endResponse = false, ( ).
endResponse = true ( bool), , .