The best solution is metadata-only caching, as that's mostly random I/O and would leave the mechanical bandwidth fully for the data itself. The downside is that L2ARC won't have everything, as it isn't proactive; there is the special device, but then the metadata is SSD-only, with that one failure point unless you run mirrors.
If they'd get around to merging Special Failsafe [1] and hybrid drives could address the flash space separately like under SAS, it would be a no-brainer.