http://manual.3dgamestudio.net/material-flags.htm

ENABLE_VIEW is just a simple flag that lets your event run before view rendering. It should not affect your entity materials or make them buggy. But as far as I see, you've not set a return value in your event function - this might cause randomly some strange behavior of your application, and can be the reason of your problem. Or it's something that you're doing in the event - DX functions often have side effects.

In your second code you seem to use the wrong effect pointer. The individual effect pointer of a material is not render_d3dxeffect, but mtl->d3deffect.

As to sharing render targets, yes, when the targets have the same size and format, there is no reason why this should not work.