As an aside: it’s nice to see the newer functionality taking a DSA-like approach so it’s obvious that this is something that the ARB do recognise the value of, meaning that it’s most likely not a case of resistance to the idea of DSA but more a case of difficulties in getting a sensible specification together.
The problem is that they’re very inconsistent about it.
For example, ARB_invalidate_subdata is pure DSA. It doesn’t add a GL_INVALIDATE_BUFFER target, nor does it use buffers attached to the context. It simply takes buffer and texture objects directly. ARB_copy_image works similarly.
And yet, ARB_framebuffer_no_attachments, which adds parameters to framebuffers, works just like the standard OpenGL way. You don’t pass an FBO; you have to bind it and modify it. Similarly, ARB_clear_buffer_object isn’t DSA; you have to bind it to the context.
Both of them have EXT functions that are DSA, but the core functions are not. So you can invalidate a buffer via DSA, but not clear it.
I would say that the ARB doesn’t recognize the value of it; NVIDIA does. Just look at the Contributors section. For ARB_copy_image, you have 10 people; 9 of them are from NVIDIA and one is from Transgaming. For ARB_invalidate_subdata, 2 of the 3 contributors are from NVIDIA. The non-DSA-style extensions are credited as “Members of the Khronos OpenGL ARB TSG” or simply don’t have a Contributors section at all.
Looking at the Revision History, the DSA-style extensions seem to have been more or less done internally by NVIDIA, then presented to the ARB for editing and approval. Things like “internal revisions” and “based on NV_copy_image”. The others seem to have been formed by the ARB themselves.
Of course, this also explains why ARB_vertex_attrib_binding isn’t DSA-style (it doesn’t even add DSA EXT functions). Because the objects they would be modifying are VAOs, and NVIDIA doesn’t seem to like VAOs or encourage their use. Granted, VAB tends to work against 70% of the whole point of VAOs, but that’s another issue.
So the ARB isn’t trying to make DSA happen; NVIDIA is. That’s why we don’t have DSA in core, because only one member of the ARB actually wants it to happen.
The big win from DSA is removal of bind-to-modify
DSA does not, and never did, remove bind-to-modify. It simply provides an alternative. Removing “bind-to-modify” would require removing every function that operates on state that happens to be encapsulated into an object.