Decals are now clipped to world geometry. This will make it easier to have decals based on user input, such as bullet hole and rocket scorches, because they won't 'float' in space. I could also use it for flavor to add cracks in walls, stickers, etc. I'll apply it to the player / NPC shadows as well so they don't hang off of edges.
There's a lot of optimization to be done, right now I'm using a special shader which generates the UV coords per-vert, but since I'm actually baking the verts into a temporary mesh when the decal is placed, I should instead bake the correct UVs into that mesh too. Then I can render decals with the default shader , saving a lot of duplication in lighting. It should also be possible to pool lots of decals into one draw call. 
 Which is what I was doing a few days ago anyway, because the default shader has the "depth offset" uniform necessary for decals. I only changed to the new shader to add a texture matrix, which I now realize isn't needed. Unless I want scrolling / shrinking / spinning decals or something.
 I'll still be limited by vertex count and fillrate in the end. If a triangle has two decals on it, it'll have to be drawn three times total, once for the surface and once per decal. All this optimization does is reduce the total number of draw calls. None of this stuff is really novel, I just hadn't tried implementing it for myself before.