There is an attempt to use GPU even more for selection, while we still have some long standing issues there (and awful options like depth select, which baffle users - selection should just work).
We should move forward with our selection design, get this over with, and make sure snap/selection/... all fall in line with the same design, so no effort is wasted going multiple directions.
Worth noting that the VR project, and the eevee / cycles fisheye in the viewport selection task needs an abstraction between what is drawn in the viewport and what we select. It may be possible with the current architecture, but if we are to change things (going cpu?ray cast?) these cases should be taken into consideration.