There have been many such attempts, but none ever really took off.
I think the core problem is that "transferring bulk data directly between two computers" is not a problem that many people actually have. At least, not in a way that isn't solved by other means like an intermediate USB drive or simply waiting for your conventional network to do it.
In reality, what you propose can be done with zero software: simply put two USB network adapters back to back inside your cable. That's traditionally how this has been done. If you want a raw USB connection, one device must support USB device mode, which is extremely rare on PCs. I don't know if you can fix this in userland, or even the kernel. My bet is that this is a hardware/firmware level feature, though I don't know for sure.
I think the core problem is that "transferring bulk data directly between two computers" is not a problem that many people actually have. At least, not in a way that isn't solved by other means like an intermediate USB drive or simply waiting for your conventional network to do it.
In reality, what you propose can be done with zero software: simply put two USB network adapters back to back inside your cable. That's traditionally how this has been done. If you want a raw USB connection, one device must support USB device mode, which is extremely rare on PCs. I don't know if you can fix this in userland, or even the kernel. My bet is that this is a hardware/firmware level feature, though I don't know for sure.