Ok.
Redirect 301 and 307 are "client side". I mean that user from the browser call an URL, and get a response. In this response there's a redirection instruction for the browser, and then the browser make a second call to the new destination. The user can see the URL in the address bar that changes.
The internal redirect, instead, is a "server side" redirect. You are telling to Joomla to serve to the user browser a different page even for the old URL. In this case the user (and Google spider too) can't notice nothing at all. The URL in the address bar doesn't change.
I hope this is clear even with my "poor" english.
Best regards,
Luigi