I would like to be able to write a shader that can generate additional geometry on the fly. Is there a way to do this in Godot? I was hoping Godot 4 would open up this ability.

On the source level, yes the vulkan renderer should be able to deal with it. But I'm not aware of godots internal shaderlanguage currently exposing it.