Camera

Camera.SetReplacementShader

SetReplacementShader will not render objects if their original materials don't contain any properties required by the replacement shader. For example, if your replacement shader uses _MainTex, and there is an object in the scene that doesn't have _MainTex, it won't be rendered at all.

SetReplacementShader will use the Materials of the existing objects in the scene1). However, it only seems to apply keywords that are registered as multi_compile. Per-material keywords registered with shader_feature do not get applied. For example, if you call SetReplacementShader with the default URP Lit.shader, these keywords will all be turned off:

Shaders can be replaced in the SceneView using SceneView.SetSceneViewShaderReplace.

1)
all of the textures and instance data is still sent to the replaced