I stumbled upon this really clever shader trick from Pontus Karlsson, where he pushes the verts of a quad mesh into camera facing billboards. You can watch the video of it here.
The benefit of it is that each 'billboard splat' retains the original normal, so you get proper volumetric lighting information without any extra work. You don't even need to use custom lighting the way I have here, you can just use the vertex push to create the splats, and the built-in shading will just work.
Here's a before and after of the quad mesh being aligned to the camera.

I'm so excited about this approach, it's got such a lovely painterly look to it. It reminds me of the beautiful splat rendering of Dreams, or the cool SDF Unity plugins that are producing such lovely soft art, such as Clayxels and Mudbun.
As Pontus says in his video, it's not an approach that will replace manually authoring foliage cards for anything realistic, but as its own unique stylised effect it's got a lot of artistic potential.
So I made a few simple variations to share with you. Some foliage. Some clouds, both dithered and transparent (with the same caveats and sorting issues that transparent shaders always have) as well as a jittered brush stroke one.

Here are the important nodes in Amplify Shader Editor.
If you want to use it on your own meshes, the important things to know is you have to be using a quad mesh for the mapping to work properly, and it has to be face mapped - that is, each individual quad has the full 0,0 - 1,1 UV space. You can use a smoothed or facetted mesh depending on the shading you'd like. Then just plug the above shader nodes into Local Vertex Offset.
Next thing I'd like to add to it is to retain UV1 for standard texture mapping, and use UV2 for the face mapping. Then we could put this shader on any textured mesh and it should retain it's colours and shading, just rendering with splats instead. Using vertex colours would also be a nice approach for a stylised game.
Some other features I'd like, but I couldn't figure out yet, is how to scale the individual splats, while retaining their camera facing orientation. Also being able to lerp between camera facing and aligned to the original normal (which not changing the quad scale) is something I need to figure out. If anybody has any ideas on how to achieve this, please let me know.
UPDATE:

I added in a 'limit backfacing' toggle to all the shaders. This stops the billboarding from happening on backfacing quads, which in most cases would unnecessarily double up the rendering by showing all the faces you can't even see anyway. If the splats are small enough then this could create gaps, but for most cases I think it's a valuable optimisation without any visual differences.