this is correct, and is by design. We do not want to abstract away runtime behavior of different execution environments. You design your pipeline for the target execution environment. If you want to change the target execution environment you need to make updates.
the last thing we want are pipelines intended to run in Docker (isolated) being scheduled to run on the Exec runner (not-isolated) which has security implications, concurrency implications, and could mutate the host in undesirable ways. We also want to avoid situations where a Docker pipeline (all dependencies included in images) fails to run on the Exec runner because the host is missing dependencies. Or Docker pipelines fail on Kubernetes because Kubernetes networking uses localhost instead of hostnames. There is no free lunch here. We change the behavior and we just introduce a whole new class of support issues that will confuse users.
I agree that this is difficult to debug and we need a solution, but we will have to agree to disagree on what that solution should be.