I'm not advocating that closed source drivers be included in the kernel, but IMHO, having an open kernel-space driver would also help the reverse engineering process at the same time as allowing common users as well as developers to use and test any 3D applications -don't forget that 3D problems don't end at the driver, rather the opposite.
Again thats a short-term view. So we spend the effort to clean up the open kernel code, but the vendors want to keep the interface to userspace the same so the binary modules can keep functioning? How do we clean up insanities in the interfaces? How do we optimise the stack going forward?
Having the code in mainline won't help anyone who is any good at reverse engineering.
Dave.