My approach combines the spinner and trackball as one virtual device without using grab so you can still run the physical devices separately if needed (untested).
Starting with version 1.0.9 it now uses Intel that allows it to assign the proper global mouse index for player one, before game time without scraping RetroArch logs anymore. V37 dev version of Retroarch stopped logging the inputs for me. VMM uses the udev_input driver instead.
V1.0.10 will be maintenance release cleaning up the code.
V1.1.0 and later will allow the user to easily config which types of devices to assign relative and/or absolute devices. Relative objects are mouse objects like spinner and trackball. Absolute objects are light gun, trackpad and touch screens. This may be expanded to the driver categories of mouse, trackball, spinner, but keep in mind a lot of arcade relative objects always report mouse as their category and not what they really are.
Only time I have seen a slow down in the virtual mouse is when combining an Apple trackpad to my spinner and trackball. The Trackpad is a relative device and shows up as two separate inputs. It is an ABS device and does not seem to play well with REL devices.