What you're suggesting is a boolean operation on arbitrarily shaped meshes which is both computationally expensive and incredibly complex to solve correctly for all cases. It's not something you want to be doing in real-time.
This is overkill for the effects you actually want anyway. Terrain craters can be achieved by moving the heights of the terrain points down around the area of the explosion. Bullet dents in walls are better done with decals. You can get a decent depth effect using bump/normal mapping. It's not perfect, but it won't cripple your machine
Kaiyodo.