I recently enabled udev-cache for some of my images (dylan 1.4.3). These images all include multiple modules that are loaded at boot time (some of them are loaded with modules_autoload statements from my machine conf file). Some time after enabling udev-cache, we discovered that from time to time some device nodes were created with the wrong major number, as if the device node itself had been overwritten. I'm guessing that this could come from the udev-cache script blindly replacing the content of /dev even if some nodes are already present. Manually recreating the device node fixes the issue. I'm not sure if this is an actual bug or just a current limitation of udev-cache when working with modules... My first guess for a fix would be to not overwrite files in /dev or be more conservative as to what the dev.tar file contains.
The design of udev-cache has limitations and in the circumstances you describe there is probably not a lot you can do but to disable it. I'm wondering if we should just remove the thing entirely. There is nothing we can do to fix the underlying design though so I'm marking this bug as such (effectively CANTFIX).