Das ist genau so ein redirect, nur nicht vom Script, sondern vom Webserver veranlasst.
Dazu schreibt man in die .htaccess Datei einfach:
ErrorDocument 403
http://example.com/error1.html ErrorDocument 404
http://example.com/ ErrorDocument 500
http://example.com/error3.html usw.
Deine Adresszeile im Browser enthält immer den letzten Aufruf.
Bei einem redirect sieht das so aus(stark vereinfacht).
B:Browser
W:Webserver
B: -> GET
http://www.hilfdirselbst.ch/test---test.html (hier ensteht ein Error 404 der zum redirect führt)
W: <- Location:
http://www.hilfdirselbst.ch/ B: -> GET
http://www.hilfdirselbst.ch/ W: <- Daten werden geliefert
Bei deinem 2. Beispiel gibt es kein ErrorDocument und damit wird der 404er durchgereicht.
Grüße Oesi