Well, while creating/changing decals is kinda slow (although can be quite fast if the meshes have their own acceleration structure like an octree) it works very stable and compared to alternatives in a forward renderer it is very fast to render such a decal once it is created.
Also it was actually very easy to implement. Just looping through faces and throwing everything away that is not needed. And cropping what is left, but thats also just some basic maths.