And yet render passes are a thing in modern APIs now and are here to stay, especially with advent of WebGPU. I really don't see why you are making such a big issue out of it.
It's still made optional on D3D12 while you're forced to use it on other modern APIs. Console APIs also don't expose renderpasses as well since it's not necessary ...
Geometry shaders are a bad abstraction for GPU execution model. They don't scale. Metal only exposes stuff that makes sense for the hardware. If you need functionality of geometry shaders, use compute shaders with GPU-driven render loop.
"Metal only exposes stuff that makes sense for the hardware."
Maybe this is true on Apple hardware but I don't think it's true for AMD hardware ...
Metal has some sub-optimal API design decisions for other hardware. Resource state transitions and barriers are resolved implicitly which can complicate using async compute so that limits potential of being able to schedule compute work as efficiently as possible on some GPUs. Also, if you look at the Sea Islands register documentation the register GpuF0MMReg:0x28b54 specifically has a bit for controlling whether the geometry shader is active or not and the now deprecated Mantle API subsequently exposed geometry shaders too but it's also available on D3D12 and Vulkan as well. On the RDNA architecture, it's geometry shader implementation was designed to be more effective in several more cases compared to it's previous generation as well ...
For modern desktop GPUs, it's not out of the realm of possibility that they have an acceptable implementation of geometry shaders so why does Apple keep actively avoiding exposing this feature on Metal when it can be somewhat usable on IMRs ?
I heard that Apple plans on exposing programmable blending everywhere but that is going to decimate performance on most IMRs so in what way does Metal only expose features that "makes sense" for the hardware ? From the perspective of AMD HW, out of all the modern APIs Metal exposes the most amount of abstractions that doesn't make sense to their HW ...
I think your information might be a bit outdated? Metal has supported bindless ressources (they call them Argument Buffers) for a while now, including arbitrary pointer chasing, writeable resource handles and whatever you want. You can build entire hierarchies of resource bindings on the GPU. This years update to Metal includes fully-featured implementation of ray tracing, with programmable intersection shaders, function pointers for dynamic function loading, recursive shader execution etc. The performance is not the best right now, since ray tracing is done in "software" (using compute shaders), but it is obvious that hardware ray tracing support is coming. Regarding mesh shaders: I agree that they are not the best fit for the TBDR hardware, since the generated vertices cannot be just passed through to the rasterizer immediately. So I am not sure whether we will ever see them in Metal. But if all you need to do is generating some geometry on the GPU, well, compute shaders + GPU-driven rendering loops got you covered. And of course, Metal has sparse textures, variable rate shading, fully programmable multisampling and so on.
Besides, you are leaving out some advantages TDBR brings to the table. Like programmable blending or direct control over tile memory. Explicit render passes, memory-less render targets and tile shaders simplify implementation of many advanced rendering techniques and end up being much more efficient.
Argument buffers looks like they provide similar functionality as descriptor indexing would on other APIs in that they all let you create unbounded/bindless arrays/tables. I'm not quite sure if Metal's argument buffers are comparable to some of Nvidia's OpenGL bindless extensions. How much longer do we also have to wait for Apple silicon to support hardware accelerated ray tracing ? I don't see most of the industry will tolerate waiting for another generation ...
Programmable blending and tile memory are nice to have but they aren't all that compelling for most desktop vendors to implement or expose ...