When you use sendRedirect, you are creating new request.The browser will show you the changing URL. It is not server-side forward. Though you are calling the jsp page in same container, the request attributes will not persist in case of sendRedirect.
When you say it's like making a new request all over again when using a sendRedirect, it means that we get a new request and response objects. So that is the clue as to what happens with the request attribute that I've set before doing the sendRedirect.
You may set this idea in your mind anyway you are comfortable. The key idea is that sendRedirect fulfills that original contract (returns a response) with the client (browser) while returning a status that tells the browser to send another request to the address that you indicated in the redirect.