Yes, URLs are used "out there" on the web and filepaths are used "here" inside the server. They are not at all the same thing.
With mod_rewrite, everything happens after the click that generates a URL request sent to the server.
A redirect tells the browser to make a new request for a different URL.
A redirect maps a URL to a URL.
With a rewrite, the content is not fetched from the default path seen in the URL request. Instead the internal pointer is altered to instead fetch the content from a different place inside the server, without revealing what that internal location actually is.
A rewrite maps a URL to a filepath and file.