The solution is easier than that: only open up the appropriate buffers to DMA. It doesn't need to be virtualized, it just needs to be bounds checked.
Maybe I'm spoiled by good hardware, but when I wrote FireWire drivers for embedded systems, we didn't just open up DMA access to RAM willy-nilly.
I honestly don't know enough about OHCI to know what the hardware setup is like, but I suspect it's just laziness.