The reason you cannot read from the world normal scene texture in a decal material that outputs world normal is that decal materials are actually a special type of translucent material that is blended directly against the g-buffers (diffuse, normal, roughness, etc.), and it’s not (usually) possible for a fragment shader to read from the same buffer it’s writing to.
You wouldn’t need any kind of workarounds if decal materials supported independent opacity values for each output.