OK, so I've implemented the exact problem you are facing into, and I used splines also. There are 2 problem spaces, you have identified both.
1 - Splines for roads.
2 - Decals in geometry.
My solutions.
1. For spines on roads, you are on the right path. I did something slightly different with splines. Using a spline SPINE, I generate my geometry. So the spine is only a guide, I create parallel splines based upon the perpendicular vectors. I actually end up with 4 guide lines and I create 3 rows of triangles. This gives you a decent resolution on most terrain, you can up this more if you have more detailed terrain. That only solves part of the problem, gives you a decent approximation. NOW...for the more interesting part, blending to your varying terrain. The extra "rails" also allow for alpha blending per point to smooth off edges also.
2. I actually render my spline roads to a separate back buffer texture, there is reason for this. This is to deal with mapping to the terrain in a close approximate way. When rendering my terrain, I sample from this buffer (as a texture) and apply to it per pixel.
This works well for forward rendering, but the limitation is that because the terrain depth hasn't been rendered before generating so z depth wont be tested. Deferred works better as you will have access to the z depth.
I know you are using unity, so I cant offer a solution in that space, only the technique I used for decals.
My game is on the page below, its downloadable. You will find spline decals on the waters edges, roads, decals used also burn marks. Decals are also used for boat wakes on water as well.
https://www.facebook.com/InsaneSoftware.com.au/
Gl with this!