it's a mad hybrid these days! we rasterize rough cubes, then raymarch the sdf from there; then we selectively splat strokes on top. so it's all the things :) it wasn't always, but pure splatting left too many tiny holes :)
alas no! it's small rasterized brick trees per object. but we (hierarchical) cull the bricks as we generate them, so overdraw isnt too bad. hierarchical rt would prob be competitive but we evolved here as an accident of history.
not much to add: GPU occlusion cull all the things, raymarch remaining bricks front to back with conservative Z test. points for everything was fun compute, but yeah hole filling was tricky, also needed whole other pipeline to deal with with sparse points when up close
so hole filling is actually doable. I really like that idea of moving surface reconstruction into screen space. more challenging is the retaining of shape features.
2 pass intraframe; ie back project into last frame, use as oracle to split cubes into early and late; then render early ones, then cull late ones against early ones intraframe.